首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
刘汝佳 算法竞赛-入门经典 第二部分 算法篇 第六章 2(Binary Trees)
】的更多相关文章
刘汝佳 算法竞赛-入门经典 第二部分 算法篇 第五章 1(String)
第一题:401 - Palindromes UVA : http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=96&page=show_problem&problem=342 解题思路:此题很水,只要把 mirrored string 类的对应关系搞对,基本就可以了! 但是细节要注意,首先只有一个元素的时候需要单独判断,一个字符是回文串,是不是 mirrored strin…
刘汝佳 算法竞赛-入门经典 第二部分 算法篇 第五章 3(Sorting/Searching)
第一题:340 - Master-Mind Hints UVA:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=98&page=show_problem&problem=276 题目大意:给定密码长度,然后是密码占一行,然后每一行是一个猜测,需要找出这行猜测有几个位置相同且密码相同的个数,几个位置不同但密码匹配的个数:前者个数为A,后者个数为B,匹配优先前者比如说密码…
刘汝佳 算法竞赛-入门经典 第二部分 算法篇 第五章 2(Big Number)
这里的高精度都是要去掉前导0的, 第一题:424 - Integer Inquiry UVA:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=97&page=show_problem&problem=365 解题思路:模拟手动加法的运算过程,写一个高精度整数加法就可以了:减法,乘法,除法同样也是模拟手动过程. 解题代码: #include <iostream&g…
刘汝佳 算法竞赛-入门经典 第二部分 算法篇 第六章 1(Lists)
127 - "Accordian" Patience 题目大意:一个人一张张发牌,如果这张牌与这张牌前面的一张或者前面的第三张(后面称之为一位置和三位置)的点数或花式相同,则将这张牌移动到与之对应的位置(优先三位置,也就是说如果一位置与三位置都有以上的性质则移动到三位置之上),移动之后若仍以上的性质,则继续操作,直到已发的所有牌都无法移动之后再继续发牌,(如果一个位置被移空,则删除此位置!) 解题思路:用数组模拟链表,每发一张牌就匹配三位置,如果匹配就移动,否则再看一位置是否满足,如果…
刘汝佳 算法竞赛-入门经典 第二部分 算法篇 第六章 2(Binary Trees)
112 - Tree Summing 题目大意:给出一个数,再给一颗树,每个头节点的子树被包含在头节点之后的括号里,寻找是否有从头节点到叶子的和与给出的数相等,如果有则输出yes,没有输出no! 解题思路:按照括号匹配的原则,调用栈,求从头节点到叶子节点的和! 解题代码: //Author :Freetion //file :112 - Tree Summing #include <stdio.h> #include <iostream> #include <stack>…
算法竞赛入门经典第二版 TeX中的引号 P47
#include<bits/stdc++.h> using namespace std; int main(){ ; while( (c = getchar()) !=EOF) //getchar是读入 单个字符 { if(c =='"'){ printf("%s",q ? " . ":" ."); q=!q; } else printf("%c",c); } ; } // 输入 "aSAs&q…
算法竞赛入门经典第二版 蛇形填数 P40
#include<bits/stdc++.h> using namespace std; #define maxn 20 int a[maxn][maxn]; int main(){ ; cin>>n; memset(a,,sizeof(a)); tot=a[x=][y=n-]=; while(tot<n*n){ <n&&!a[x+][y]) a[++x][y]=++tot; >=&&!a[x][y-]) a[x][--y]=++t…
算法竞赛入门经典第二版 竖式问题 P42
#include<bits/stdc++.h> using namespace std; int inset(char *s,int num) { //判断数字是否在数字集中 int len=strlen(s),i,tmp; while(num) { tmp=num%; //取末尾数字 ; i<len; i++) { '==tmp) //如果在里面,则跳出for循环 break; } if(i==len)//当i=len的时候,表示已经搜遍s,s里面不存在tmp的末尾数字,则不行 ; n…
算法竞赛入门经典第二版 回文词P49
#include<bits/stdc++.h> using namespace std; char rev[]="A 3 HIL JM O 2TUVWXY51SE Z 8 "; char *msg[]={"is not a palindrome","is a regular palindrome","is a mirrored string","is a mirrored palindrome"…
算法竞赛入门经典第二版第二章习题-(练习Java和C++语法)
习题2-1水仙花数(daffodil) 输出1000-999中所有的水仙花数.若三位数ABC满足ABC = A3+B3+C3,则称其为水仙花数. Java: package suanfa; public class T1_1 { public static void main(String[] args) { for(int i =100;i<1000;i++) { if(((i/100)*(i/100)*(i/100) + ((i/10)%10)*((i/10)%10)*((i/10)%10)…