├── kaoyan ├── 84:abc.txt ├── 32:二叉树遍历.txt ├── 11:Sort.txt ├── 13:剩下的树.txt ├── 15:叠筐.txt ├── 30:哈夫曼树.txt ├── 33:二叉树.txt ├── 34:树查找.txt ├── 40:反序数.txt ├── 45:进制转换.txt ├── 62:进制转换.txt ├── 68:连通图.txt ├── 74:畅通工程.txt ├── 78:最短路径.txt ├── 82:产生冠军.txt ├── 83:百鸡问题.txt ├── 85:求最大值.txt ├── 87:非常可乐.txt ├── 91:全排列.txt ├── 18:查找学生信息.txt ├── 27:简单计算器.txt ├── 28:堆栈的使用.txt ├── 29:计算表达式.txt ├── 37:还是A+B.txt ├── 47:最大公约数.txt ├── 48:最小公倍数.txt ├── 4:EXCEL排序.txt ├── 54:质因数的个数.txt ├── 56:约数的个数.txt ├── 63:浮点数加法.txt ├── 64:大整数排序.txt ├── 75:继续畅通工程.txt ├── 81:确定比赛名次.txt ├── 86:胜利大逃亡.txt ├── 88:汉诺塔III.txt ├── 60:a+b(该井要).txt ├── 66:畅通工程--并查集.txt ├── 72:Freckles.txt ├── 65:10进制 VS 2进制.txt ├── 77:最短路径问题。。还需看.txt ├── 90:Oil Deposit.txt ├── 42:Digital Roots.txt ├── 67:More is better.txt ├── 70:Head of a Gang.txt ├── 73:Jungle Roads.txt ├── 80:Legal or Not.txt ├── 69:How Many Tables.txt ├── 79:I Wanna Go Home.txt ├── 89:Prime ring problem.txt ├── 49:Least Common Multiple.txt ├── 53:Goldbach's Conjecture.txt ├── 58:A sequence of numbers.txt ├── 5:字符串内排序.txt ├── 46:八进制.txt ├── 38:守形数.txt ├── 50:素数判定.txt ├── 2:成绩排序.txt ├── 57:人见人爱 A ^ B.txt ├── 1:排序.txt ├── 52:Prime Number.txt ├── 14:输出梯形.txt ├── 39:特殊乘法.txt ├── 41:对称平方数.txt ├── 43:又一版 A+B.txt ├── 17:找x.txt ├── 12:谁是你的潜在朋友.txt ├── 10:统计同成绩学生人数.txt ├── 31:搬水果.txt ├── 61:N的阶乘.txt ├── 76:最短路.txt ├── 20:查找.txt ├── 24:Repair the Wall.txt ├── 51:素数.txt ├── 8:今年的第几天?.txt ├── 9:打印日期.txt ├── 26:括号匹配问题.txt ├── 21:FatMouse.txt ├── 23:迷瘴.txt ├── 44:数制转换.txt ├── 19:打印极值点下标.txt ├── 6:日期差值.txt ├── 71:还是畅通工程.txt ├── 3:特殊排序.txt ├── 59:Tr A.txt ├── 35:二叉排序树.txt └── 7:Day of Week.txt ├── 9du ├── 1057:众数.txt ├── 1465:最简真分数.txt ├── 1467:二叉排序树.txt ├── 1479:移位和旋转.txt ├── 1051:数字阶梯求和.txt ├── 1075:斐波那契数列.txt ├── 1480:最大上升子序列和!!!!!.txt ├── 1081:递推数列.txt ├── 1058:反序输出.txt ├── 1055:数组逆置.txt ├── 1062:分段函数.txt ├── 1063:整数和.txt ├── 1068:球的半径和体积.txt ├── 1066:字符串排序.txt ├── 1039:Zero-complexity.txt ├── 1466:排列与二进制.txt ├── 1036:Old Bill.txt ├── 1464:Hello World for U.txt ├── 1067:n的阶乘.txt ├── 1041:Simple Sorting.txt ├── 1072:有多少不同的面值组合?.txt └── 1093:WERTYU.txt ├── README.md └── Learn-Algorithm ├── README.md └── 1.1二叉树建立遍历.cpp /kaoyan/84:abc.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /kaoyan/32:二叉树遍历.txt: -------------------------------------------------------------------------------- 1 | ABC 2 | BAC 3 | FDXEAG 4 | XDEFAG -------------------------------------------------------------------------------- /9du/1057:众数.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/9du/1057:众数.txt -------------------------------------------------------------------------------- /9du/1465:最简真分数.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/9du/1465:最简真分数.txt -------------------------------------------------------------------------------- /9du/1467:二叉排序树.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/9du/1467:二叉排序树.txt -------------------------------------------------------------------------------- /9du/1479:移位和旋转.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/9du/1479:移位和旋转.txt -------------------------------------------------------------------------------- /kaoyan/11:Sort.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/11:Sort.txt -------------------------------------------------------------------------------- /kaoyan/13:剩下的树.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/13:剩下的树.txt -------------------------------------------------------------------------------- /kaoyan/15:叠筐.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/15:叠筐.txt -------------------------------------------------------------------------------- /kaoyan/30:哈夫曼树.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/30:哈夫曼树.txt -------------------------------------------------------------------------------- /kaoyan/33:二叉树.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/33:二叉树.txt -------------------------------------------------------------------------------- /kaoyan/34:树查找.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/34:树查找.txt -------------------------------------------------------------------------------- /kaoyan/40:反序数.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/40:反序数.txt -------------------------------------------------------------------------------- /kaoyan/45:进制转换.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/45:进制转换.txt -------------------------------------------------------------------------------- /kaoyan/62:进制转换.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/62:进制转换.txt -------------------------------------------------------------------------------- /kaoyan/68:连通图.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/68:连通图.txt -------------------------------------------------------------------------------- /kaoyan/74:畅通工程.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/74:畅通工程.txt -------------------------------------------------------------------------------- /kaoyan/78:最短路径.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/78:最短路径.txt -------------------------------------------------------------------------------- /kaoyan/82:产生冠军.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/82:产生冠军.txt -------------------------------------------------------------------------------- /kaoyan/83:百鸡问题.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/83:百鸡问题.txt -------------------------------------------------------------------------------- /kaoyan/85:求最大值.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/85:求最大值.txt -------------------------------------------------------------------------------- /kaoyan/87:非常可乐.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/87:非常可乐.txt -------------------------------------------------------------------------------- /kaoyan/91:全排列.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/91:全排列.txt -------------------------------------------------------------------------------- /9du/1051:数字阶梯求和.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/9du/1051:数字阶梯求和.txt -------------------------------------------------------------------------------- /9du/1075:斐波那契数列.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/9du/1075:斐波那契数列.txt -------------------------------------------------------------------------------- /kaoyan/18:查找学生信息.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/18:查找学生信息.txt -------------------------------------------------------------------------------- /kaoyan/27:简单计算器.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/27:简单计算器.txt -------------------------------------------------------------------------------- /kaoyan/28:堆栈的使用.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/28:堆栈的使用.txt -------------------------------------------------------------------------------- /kaoyan/29:计算表达式.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/29:计算表达式.txt -------------------------------------------------------------------------------- /kaoyan/37:还是A+B.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/37:还是A+B.txt -------------------------------------------------------------------------------- /kaoyan/47:最大公约数.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/47:最大公约数.txt -------------------------------------------------------------------------------- /kaoyan/48:最小公倍数.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/48:最小公倍数.txt -------------------------------------------------------------------------------- /kaoyan/4:EXCEL排序.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/4:EXCEL排序.txt -------------------------------------------------------------------------------- /kaoyan/54:质因数的个数.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/54:质因数的个数.txt -------------------------------------------------------------------------------- /kaoyan/56:约数的个数.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/56:约数的个数.txt -------------------------------------------------------------------------------- /kaoyan/63:浮点数加法.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/63:浮点数加法.txt -------------------------------------------------------------------------------- /kaoyan/64:大整数排序.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/64:大整数排序.txt -------------------------------------------------------------------------------- /kaoyan/75:继续畅通工程.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/75:继续畅通工程.txt -------------------------------------------------------------------------------- /kaoyan/81:确定比赛名次.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/81:确定比赛名次.txt -------------------------------------------------------------------------------- /kaoyan/86:胜利大逃亡.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/86:胜利大逃亡.txt -------------------------------------------------------------------------------- /kaoyan/88:汉诺塔III.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/88:汉诺塔III.txt -------------------------------------------------------------------------------- /kaoyan/60:a+b(该井要).txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/60:a+b(该井要).txt -------------------------------------------------------------------------------- /kaoyan/66:畅通工程--并查集.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/66:畅通工程--并查集.txt -------------------------------------------------------------------------------- /kaoyan/72:Freckles.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/72:Freckles.txt -------------------------------------------------------------------------------- /kaoyan/65:10进制 VS 2进制.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/65:10进制 VS 2进制.txt -------------------------------------------------------------------------------- /kaoyan/77:最短路径问题。。还需看.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/77:最短路径问题。。还需看.txt -------------------------------------------------------------------------------- /kaoyan/90:Oil Deposit.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/90:Oil Deposit.txt -------------------------------------------------------------------------------- /9du/1480:最大上升子序列和!!!!!.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/9du/1480:最大上升子序列和!!!!!.txt -------------------------------------------------------------------------------- /kaoyan/42:Digital Roots.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/42:Digital Roots.txt -------------------------------------------------------------------------------- /kaoyan/67:More is better.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/67:More is better.txt -------------------------------------------------------------------------------- /kaoyan/70:Head of a Gang.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/70:Head of a Gang.txt -------------------------------------------------------------------------------- /kaoyan/73:Jungle Roads.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/73:Jungle Roads.txt -------------------------------------------------------------------------------- /kaoyan/80:Legal or Not.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/80:Legal or Not.txt -------------------------------------------------------------------------------- /kaoyan/69:How Many Tables.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/69:How Many Tables.txt -------------------------------------------------------------------------------- /kaoyan/79:I Wanna Go Home.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/79:I Wanna Go Home.txt -------------------------------------------------------------------------------- /kaoyan/89:Prime ring problem.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/89:Prime ring problem.txt -------------------------------------------------------------------------------- /kaoyan/49:Least Common Multiple.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/49:Least Common Multiple.txt -------------------------------------------------------------------------------- /kaoyan/53:Goldbach's Conjecture.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/53:Goldbach's Conjecture.txt -------------------------------------------------------------------------------- /kaoyan/58:A sequence of numbers.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tankpt/acmlist/master/kaoyan/58:A sequence of numbers.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | acmlist 2 | ======= 3 | 4 | 刷的一些题目的保存 5 | 6 | - 9du 这个主要是在考研期间的时间在九度平台上刷的题目 7 | - kaoyan 这个也是在九度上的题目。不过是之前平台写的书上的题目 8 | - Learn-Algorithm 是跟风v2ex上的算法小组做的合集。不知道能坚持多久 9 | -------------------------------------------------------------------------------- /Learn-Algorithm/README.md: -------------------------------------------------------------------------------- 1 | Learn-Algorithm 2 | ======== 3 | 起源是v2ex上有人发起的算法练习,也尝试练习下 4 | 5 | - 第一辑关于树 6 | 1 二叉树的建立遍历,[详见这里](http://blog.csdn.net/tankpt/article/details/20220047) 7 | 2 8 | -------------------------------------------------------------------------------- /9du/1081:递推数列.txt: -------------------------------------------------------------------------------- 1 | #include 2 | int main() 3 | { 4 | int p,q,k,a,b,c,i; 5 | while(scanf("%d%d%d%d%d",&a,&b,&p,&q,&k)!=EOF) 6 | { 7 | for(i=2;i<=k;i++) 8 | { 9 | c=p*b+q*a; 10 | a=b;b=c; 11 | } 12 | printf("%d\n",c%10000); 13 | } 14 | return 0; 15 | } -------------------------------------------------------------------------------- /kaoyan/5:字符串内排序.txt: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | using namespace std; 6 | 7 | int main() 8 | { 9 | int n; 10 | char s[201]; 11 | while(scanf("%s",&s)!=EOF) 12 | { 13 | n=strlen(s); 14 | sort(s,s+n); 15 | puts(s); 16 | } 17 | return 0; 18 | } -------------------------------------------------------------------------------- /9du/1058:反序输出.txt: -------------------------------------------------------------------------------- 1 | Upin 2 | cvYj 3 | WJpw 4 | cXOA 5 | 6 | #include 7 | #include 8 | int main(int argc, char *argv[]) 9 | { 10 | int i; 11 | char s[4]; 12 | while(scanf("%s",&s)!=EOF) 13 | { 14 | for(i=3;i>=0;i--) 15 | printf("%c",s[i]); 16 | printf("\n"); 17 | } 18 | return 0; 19 | } 20 | -------------------------------------------------------------------------------- /9du/1055:数组逆置.txt: -------------------------------------------------------------------------------- 1 | hdssg 2 | #include 3 | #include 4 | #include 5 | int main(int argc, char *argv[]) 6 | { 7 | int i,len; 8 | char s[200]; 9 | while(scanf("%s",&s)!=EOF) 10 | { 11 | len=strlen(s); 12 | for(i=len-1;i>=0;i--) 13 | printf("%c",s[i]); 14 | printf("\n"); 15 | } 16 | return 0; 17 | } 18 | -------------------------------------------------------------------------------- /kaoyan/46:八进制.txt: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | int main() 5 | { 6 | int i,n[20],j,a; 7 | while(scanf("%d",&a)!=EOF ) 8 | { 9 | i=0; 10 | while(a/8!=0) 11 | { 12 | n[i]=a%8; 13 | a=a/8;i++; 14 | } 15 | n[i]=a%8; 16 | for(j=i;j>=0;j--) 17 | printf("%d",n[j]); 18 | printf("\n"); 19 | } 20 | return 0; 21 | } -------------------------------------------------------------------------------- /9du/1062:分段函数.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 3 | #include 4 | #include 5 | int main(int argc, char *argv[]) 6 | { 7 | char s[4]; 8 | float x,y; 9 | while(scanf("%f",&x)!=EOF) 10 | { 11 | if(x>=0&&x<2) 12 | y=-x+2.5; 13 | else if(x>=2 && x<4) 14 | y=2-1.5*(x-3)*(x-3); 15 | else 16 | y=x/2.0-1.5; 17 | printf("%.3f\n",y); 18 | } 19 | return 0; 20 | } 21 | -------------------------------------------------------------------------------- /kaoyan/38:守形数.txt: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | int main() 5 | { 6 | int n,m,tmp,i; 7 | while(scanf("%d",&n)!=EOF ) 8 | { 9 | m=n*n;tmp=n;i=0; 10 | while(tmp>0) 11 | { 12 | tmp=tmp/10; 13 | i++; 14 | } 15 | m=m % int (pow(10,i)); 16 | if(m==n) printf("Yes!\n"); 17 | else printf("No!\n"); 18 | } 19 | return 0; 20 | } -------------------------------------------------------------------------------- /kaoyan/50:素数判定.txt: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | int main() 4 | { 5 | int n,i,m; 6 | while(scanf("%d",&n)!=EOF ) 7 | { 8 | if(n<=1) printf("no\n"); 9 | else 10 | { 11 | m=sqrt(n); 12 | for(i=2;i<=m;i++) 13 | if(n%i==0) break; 14 | if(i>m) printf("yes\n"); 15 | else printf("no\n"); 16 | } 17 | } 18 | return 0; 19 | } 20 | 21 | 22 | -------------------------------------------------------------------------------- /9du/1063:整数和.txt: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | int main(int argc, char *argv[]) 4 | { 5 | int n,i,sum,x; 6 | while(scanf("%d",&n)!=EOF) 7 | { 8 | if(n<0) 9 | x=-n; 10 | else x=n; 11 | sum=0; 12 | for(i=x;i<=2*x;i++) 13 | sum=sum+i; 14 | if(n<0) 15 | sum=-sum; 16 | printf("%d\n",sum); 17 | } 18 | system("PAUSE"); 19 | return 0; 20 | } 21 | -------------------------------------------------------------------------------- /kaoyan/2:成绩排序.txt: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace std; 5 | 6 | struct Student 7 | { 8 | char name[100]; 9 | int age; 10 | int score; 11 | }; 12 | int main() 13 | { 14 | Student student; 15 | int n; 16 | while(scanf("%d",&n)!=EOF) 17 | { 18 | for(i=0;i 2 | #include 3 | #include 4 | using namespace std; 5 | int main() 6 | { 7 | int a,b,i,c; 8 | while(scanf("%d%d",&a,&b)!=EOF ) 9 | { 10 | if(a==0 && b==0) break; 11 | c=1; 12 | a=a%1000; 13 | for(i=0;i 5 | #include 6 | #include 7 | using namespace std; 8 | int main() 9 | { 10 | int n,i,buf[100]; 11 | while(scanf("%d",&n)!=EOF) 12 | { 13 | for(i=0;i 2 | #include 3 | #include 4 | int main(int argc, char *argv[]) 5 | { 6 | double x0,x1,y0,y1,z0,z1,r,v; 7 | double pi=acos(-1.0); 8 | while(scanf("%lf%lf%lf%lf%lf%lf",&x0,&y0,&z0,&x1,&y1,&z1)!=EOF) 9 | { 10 | r=sqrt(pow(x0-x1,2)+pow(y0-y1,2)+pow(z0-z1,2)); 11 | v=(4.0*pow(r,3)*pi)/3.0; 12 | printf("%.3lf %.3lf\n",r,v); 13 | } 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /kaoyan/52:Prime Number.txt: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | int key[10000]; 4 | int main() 5 | { 6 | int n,i,m,j,k; 7 | for(i=2,j=0;j<10000;i++) 8 | { 9 | m=sqrt(i); 10 | for(k=2;k<=m;k++) 11 | if(i%k==0) break; 12 | if(k>m)//prim number 13 | { 14 | key[j]=i;j++; 15 | } 16 | } 17 | 18 | while(scanf("%d",&n)!=EOF) 19 | { 20 | printf("%d\n",key[n-1]); 21 | } 22 | return 0; 23 | } 24 | 25 | 26 | -------------------------------------------------------------------------------- /9du/1066:字符串排序.txt: -------------------------------------------------------------------------------- 1 | dcba 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | using namespace std; 8 | int main(int argc, char *argv[]) 9 | { 10 | char s[20]; 11 | int len,i; 12 | while(scanf("%s",&s)!=EOF) 13 | { 14 | len=strlen(s); 15 | sort(s,s+len); 16 | i=0; 17 | for(i=0;i 4 | #include 5 | 6 | using namespace std; 7 | int main() 8 | { 9 | int i,h,len,key,j; 10 | while(scanf("%d",&h)!=EOF) 11 | { 12 | for(i=0;i 5 | #include 6 | #include 7 | using namespace std; 8 | int main() 9 | { 10 | char s[18]; 11 | int n,i; 12 | while(scanf("%d",&n)!=EOF) 13 | { 14 | string a,b,c; 15 | b=' '; 16 | for(i=0;i 4 | #include 5 | #include 6 | int main() 7 | { 8 | int i,j,sum; 9 | char n[12],m[12]; 10 | while(scanf("%s %s",&n,&m)!=EOF ) 11 | { 12 | sum=0; 13 | for(i=0;n[i]!='\0';i++) 14 | { 15 | for(j=0;m[j]!='\0';j++) 16 | sum=sum+(n[i]-'0')*(m[j]-'0'); 17 | } 18 | printf("%d\n",sum); 19 | for(i=0;i<12;i++) 20 | { 21 | n[i]='\0';m[i]='\0'; 22 | } 23 | } 24 | return 0; 25 | } -------------------------------------------------------------------------------- /kaoyan/41:对称平方数.txt: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | int main() 5 | { 6 | int i,n,num[8],dx,j; 7 | printf("0\n"); 8 | for(i=1;i<256;i++) 9 | { 10 | n=i*i;j=0; 11 | while(n>0) 12 | { 13 | num[j]=n%10;n=n/10; 14 | j++; 15 | } 16 | n=j;dx=0;j=n/2; 17 | while(dx 2 | #include 3 | #include 4 | int main() 5 | { 6 | int m,i,num[64]; 7 | long long a,b,sum; 8 | while(scanf("%d",&m)!=EOF && m!=0) 9 | { 10 | scanf("%lld%lld",&a,&b); 11 | sum=a+b;i=0; 12 | while(sum/m>0) 13 | { 14 | num[i]=sum%m; 15 | sum=sum/m; 16 | i++; 17 | } 18 | num[i]=sum; 19 | for(m=i;m>=0;m--) 20 | printf("%d",num[m]); 21 | printf("\n"); 22 | } 23 | return 0; 24 | } 25 | -------------------------------------------------------------------------------- /kaoyan/17:找x.txt: -------------------------------------------------------------------------------- 1 | 2 2 | 1 3 3 | 0 4 | 5 | #include 6 | #include 7 | using namespace std; 8 | struct Student{ 9 | 10 | int main() 11 | { 12 | int n,buf[201],i,m; 13 | while(scanf("%d",&n)!=EOF) 14 | { 15 | for(i=0;i 2 | #include 3 | #include 4 | #define N 10001 5 | using namespace std; 6 | int num[N]; 7 | int main() 8 | { 9 | int n,m,i,sum; 10 | while(scanf("%d%d",&n,&m)!=EOF && n!=0) 11 | { 12 | if(n==0) break; 13 | for(i=1;i=n-m+1;i--){ 18 | while(num[i]%2==0){ 19 | sum++; 20 | num[i]=num[i]/2; 21 | } 22 | } 23 | printf("%d\n",sum); 24 | } 25 | return 0; 26 | } -------------------------------------------------------------------------------- /kaoyan/12:谁是你的潜在朋友.txt: -------------------------------------------------------------------------------- 1 | 4 5 2 | 2 3 | 3 4 | 2 5 | 1 6 | 7 | #include 8 | #include 9 | 10 | using namespace std; 11 | 12 | int main() 13 | { 14 | int n,m,i; 15 | while(scanf("%d%d",&n,&m)!=EOF) 16 | { 17 | int read[201]={0},num[201]={0}; 18 | for(i=0;i 14 | #include 15 | #include 16 | #include 17 | using namespace std; 18 | int main() 19 | { 20 | int n,i,key,count; 21 | while(scanf("%d",&n)!=EOF && n!=0) 22 | { 23 | int score[101]={0}; 24 | for(i=0;i 9 | 10 | int main() 11 | { 12 | int n,a,b,c,price,tmp; 13 | int max,min; 14 | while(scanf("%d",&n)!=EOF) 15 | { 16 | scanf("%d%d%d",&a,&b,&c); 17 | tmp=a*1000+b*100+c*10; 18 | max=(90000+tmp+9)/n; 19 | min=(10000+tmp+0)/n; 20 | for(price=max;price>=min;price--) 21 | { 22 | if(((n*price/10) % 1000)==tmp/10) break; 23 | } 24 | if(price 2 | #include 3 | int main() 4 | { 5 | char s[81]; 6 | int len,n2,k,max,i,j; 7 | while(scanf("%s",&s)!=EOF) 8 | { 9 | len=strlen(s);max=0; 10 | for(n2=3;n2<=len;n2++){ 11 | for(k=n2;k>=1;k--){ 12 | if(2*k+n2-2==len && k>max) 13 | max=k; 14 | } 15 | } 16 | n2=len-2*max+2; 17 | for(i=0,j=len-1;i 7 | #include 8 | #include 9 | 10 | using namespace std; 11 | priority_queue,greater > s; 12 | int main() 13 | { 14 | int n,sum,x,a,b,i; 15 | while(scanf("%d",&n)!=EOF && n!=0) 16 | { 17 | sum=0; 18 | while(s.empty()==false) s.pop(); 19 | for(i=0;i1) 25 | { 26 | a=s.top();s.pop(); 27 | b=s.top();s.pop(); 28 | sum=sum+a+b; 29 | s.push(a+b); 30 | } 31 | if(n==1) sum=x; 32 | printf("%d\n",sum); 33 | } 34 | return 0; 35 | } -------------------------------------------------------------------------------- /9du/1067:n的阶乘.txt: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | int main(int argc, char *argv[]) 4 | { 5 | int i,cin,n,j,len,tmp; 6 | while(scanf("%d",&n)!=EOF) 7 | { 8 | int s[20]={0}; 9 | s[0]=1;len=1; 10 | for(i=2;i<=n;i++) 11 | { 12 | cin=0; 13 | for(j=0;j=10) 19 | { 20 | cin=cin+s[j]/10; 21 | s[j]=s[j]%10; 22 | } 23 | } 24 | if(cin!=0) 25 | { 26 | s[j]=cin;len++; 27 | } 28 | } 29 | for(i=len-1;i>=0;i--) 30 | printf("%d",s[i]); 31 | printf("\n"); 32 | } 33 | return 0; 34 | } 35 | -------------------------------------------------------------------------------- /9du/1041:Simple Sorting.txt: -------------------------------------------------------------------------------- 1 | 6 2 | 8 8 7 3 7 7 3 | 4 | #include 5 | #include 6 | #include 7 | using namespace std; 8 | int main() 9 | { 10 | int n,i,buf[100],j,count; 11 | while(scanf("%d",&n)!=EOF) 12 | { 13 | for(i=0;i 2 | #include 3 | #include 4 | using namespace std; 5 | int main(int argc, char *argv[]) 6 | { 7 | int x,y,z,j,count,i; 8 | int s[210]={0}; 9 | j=0; 10 | for(x=0;x<=5;x++)//0.8 11 | { 12 | for(y=0;y<=4;y++)//1 13 | for(z=0;z<=6;z++) 14 | { 15 | if (x==0 &&y==0&&z==0) continue; 16 | s[j]=8*x+y*10+18*z; 17 | j++; 18 | } 19 | } 20 | sort(s,s+210); 21 | i=0;count=210;j=1; 22 | while(j<210) 23 | { 24 | while(s[i]==s[j]&&j<210) 25 | { 26 | j++;count--; 27 | } 28 | i++;s[i]=s[j];j++; 29 | } 30 | printf("%d\n",count-1); 31 | system("PAUSE"); 32 | return 0; 33 | } 34 | -------------------------------------------------------------------------------- /9du/1093:WERTYU.txt: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | char in[1024]; 4 | char s[]={'`','1','2','3','4','5','6','7','8','9','0', 5 | '-','=','Q','W','E','R','T','Y','U','I','O','P','[',']', 6 | '\\','A','S','D','F','G','H','J','K','L',';','\'','Z','X','C','V', 7 | 'B','N','M',',','.','/'}; 8 | int tr(char c){ 9 | int i=0; 10 | while(s[i]!='\0'){ 11 | if(s[i]==c) return i-1; 12 | i++; 13 | } 14 | }; 15 | int main(){ 16 | int i,len; 17 | while(gets(in)){ 18 | i=0;len=strlen(in); 19 | while(i 2 | #include 3 | #include 4 | using namespace std; 5 | struct bigint{ 6 | int dig[1000]; 7 | int size; 8 | }a; 9 | void mul(int n){ 10 | int i,cin,tmp; 11 | cin=0; 12 | for(i=0;i=0;i--) 35 | printf("%04d",a.dig[i]); 36 | printf("\n"); 37 | } 38 | return 0; 39 | } -------------------------------------------------------------------------------- /kaoyan/76:最短路.txt: -------------------------------------------------------------------------------- 1 | 2 1 2 | 1 2 3 3 | 3 3 4 | 1 2 5 5 | 2 3 5 6 | 3 1 2 7 | 8 | #include 9 | int dis[101][101]; 10 | int main() 11 | { 12 | int n,m,i,j,k; 13 | int a,b,c; 14 | while( scanf("%d%d",&n,&m)!=EOF ) 15 | { 16 | if(m==0 && n==0) break; 17 | for(i=1;i<=n;i++) 18 | for(j=1;j<=n;j++) 19 | dis[i][j]=-1; 20 | while(m>0) 21 | { 22 | scanf("%d%d%d",&a,&b,&c); 23 | dis[a][b]=dis[b][a]=c; 24 | m--; 25 | } 26 | for(k=1;k<=n;k++) 27 | for(i=1;i<=n;i++) 28 | for(j=1;j<=n;j++) 29 | { 30 | if(dis[i][k]==-1 || dis[k][j]==-1) continue; 31 | if(dis[i][j]==-1 || dis[i][k]+dis[k][j] 6 | #include 7 | #include 8 | #include 9 | #include 10 | using namespace std; 11 | int main() 12 | { 13 | int n,i,m,mid,str,end,key; 14 | while(scanf("%d",&n)!=EOF) 15 | { 16 | int num[80]; 17 | for(i=0;ikey) 30 | end=mid-1; 31 | else 32 | str=mid+1; 33 | } 34 | if(str<=end) printf("YES\n"); 35 | else printf("NO\n"); 36 | } 37 | } 38 | return 0; 39 | } -------------------------------------------------------------------------------- /kaoyan/24:Repair the Wall.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 3 4 | 3 2 1 5 | 5 2 6 | 2 1 7 | 8 | #include 9 | #include 10 | #include 11 | using namespace std; 12 | bool cmp(int a,int b){ 13 | return a>b; 14 | }; 15 | int main() 16 | { 17 | int n,i,l,sum; 18 | while(scanf("%d %d",&l,&n)!=EOF) 19 | { 20 | int *num=(int *)malloc(sizeof(int)*n); 21 | for(i=0;i0 && il) 28 | { 29 | l=0;sum=sum+1; 30 | break; 31 | } 32 | else 33 | { 34 | l=l-num[i];sum=sum+1; 35 | } 36 | i++; 37 | } 38 | if(l==0) printf("%d\n",sum); 39 | else printf("impossible\n"); 40 | free(num); 41 | } 42 | return 0; 43 | } -------------------------------------------------------------------------------- /kaoyan/51:素数.txt: -------------------------------------------------------------------------------- 1 | 100 2 | 3 | #include 4 | #include 5 | int num[1001]; 6 | int key[1001]; 7 | int main() 8 | { 9 | int n,i,m,j,tmp; 10 | num[0]=0; 11 | for(i=1;i<1001;i++) 12 | { 13 | tmp=i*10+1; 14 | m=sqrt(tmp); 15 | for(j=2;j<=m;j++) 16 | if(tmp%j==0) break; 17 | if(j>m ) 18 | { 19 | key[i]=1;num[i]=num[i-1]+1; 20 | } 21 | else 22 | { 23 | key[i]=0;num[i]=num[i-1]; 24 | } 25 | } 26 | while(scanf("%d",&n)!=EOF ) 27 | { 28 | if(n<=11) 29 | printf("-1\n"); 30 | else 31 | { 32 | tmp=n/10; 33 | for(i=1,j=1;10*i+1 5 | #include 6 | 7 | #define Isyear(x) x % 100!=0 && x % 4==0 || x%400==0 ? 1: 0 8 | int dat[13][2]={ 9 | 0,0,31,31,28,29,31,31,30,30,31,31,30,30, 10 | 31,31,31,31,30,30,31,31,30,30,31,31, 11 | }; 12 | struct Date{ 13 | int year; 14 | int month; 15 | int day; 16 | void nextday() 17 | { 18 | day++; 19 | if(day>dat[month][Isyear(year)]) 20 | { day=1;month++; 21 | } 22 | } 23 | }; 24 | int buf[13][32]; 25 | int main() 26 | { 27 | int Y,M,D,sum; 28 | Date date; 29 | while(scanf("%d %d %d",&Y,&M,&D)!=EOF) 30 | { 31 | date.year=Y;date.month=1;date.day=1; 32 | sum=1; 33 | while(date.month!=13) 34 | { 35 | buf[date.month][date.day]=sum; 36 | date.nextday(); 37 | sum++; 38 | } 39 | printf("%d\n",buf[M][D]); 40 | } 41 | return 0; 42 | } -------------------------------------------------------------------------------- /kaoyan/9:打印日期.txt: -------------------------------------------------------------------------------- 1 | 2000 3 2 | 2000 31 3 | 2000 40 4 | 2000 60 5 | 2000 61 6 | 2001 60 7 | 8 | #include 9 | #include 10 | #define Isyear(x) x % 100!=0 && x % 4==0 || x%400==0 ? 1: 0 11 | int dat[13][2]={ 12 | 0,0,31,31,28,29,31,31,30,30,31,31,30,30, 13 | 31,31,31,31,30,30,31,31,30,30,31,31, 14 | }; 15 | struct Date{ 16 | int year; 17 | int month; 18 | int day; 19 | void nextday() 20 | { 21 | day++; 22 | if(day>dat[month][Isyear(year)]) 23 | { 24 | day=1;month++; 25 | } 26 | } 27 | }; 28 | int main() 29 | { 30 | int Y,num,sum; 31 | Date date; 32 | while(scanf("%d %d",&Y,&num)!=EOF) 33 | { 34 | date.year=Y;date.month=1;date.day=1; 35 | sum=1; 36 | while(sum!=num) 37 | { 38 | date.nextday(); 39 | sum++; 40 | } 41 | printf("%04d-%02d-%02d\n",Y,date.month,date.day); 42 | } 43 | return 0; 44 | } -------------------------------------------------------------------------------- /kaoyan/26:括号匹配问题.txt: -------------------------------------------------------------------------------- 1 | )(rttyy())sss)( 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | using namespace std; 8 | stack S; 9 | int main() 10 | { 11 | char dis[100],sou[100]; 12 | int i; 13 | while(scanf("%s",&sou)!=EOF ) 14 | { 15 | i=0; 16 | while(S.empty()==false) S.pop(); 17 | while(sou[i]!='\0') 18 | { 19 | if(sou[i]=='(') 20 | { 21 | S.push(i);dis[i]=' '; 22 | } 23 | else if(sou[i]==')') 24 | { 25 | if(S.empty()==true) 26 | dis[i]='?'; 27 | else 28 | { 29 | S.pop();dis[i]=' '; 30 | } 31 | } 32 | else dis[i]=' '; 33 | i++; 34 | } 35 | dis[i]=sou[i]; 36 | while(S.empty()==false) 37 | { 38 | int x=S.top(); 39 | dis[x]='$'; 40 | S.pop(); 41 | } 42 | printf("%s\n",sou); 43 | printf("%s\n",dis); 44 | } 45 | return 0; 46 | } -------------------------------------------------------------------------------- /kaoyan/21:FatMouse.txt: -------------------------------------------------------------------------------- 1 | 5 3 2 | 7 2 3 | 4 3 4 | 5 2 5 | 20 3 6 | 25 18 7 | 24 15 8 | 15 10 9 | -1 -1 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | using namespace std; 16 | struct Good{ 17 | double j; 18 | double f; 19 | double price; 20 | }good[10000]; 21 | bool cmp(Good a,Good b) 22 | { 23 | return a.price>b.price; 24 | } 25 | int main() 26 | { 27 | int n,i; 28 | double m,sum; 29 | while(scanf("%lf%d",&m,&n)!=EOF ) 30 | { 31 | if(m==-1 && n==-1) break; 32 | for(i=0;igood[i].f && i 9 | #include 10 | #include 11 | #include 12 | #include 13 | using namespace std; 14 | double pi[100]; 15 | bool cmp(double a,double b) 16 | { 17 | return a 4 | #include 5 | #include 6 | int main() 7 | { 8 | int a,b,i,str,n,sum,dx; 9 | char p[3],q[3],m[40]; 10 | while(scanf("%s%s%s",&p,&m,&q)!=EOF ) 11 | { 12 | if(p[1]=='\0') a=p[0]-'0'; 13 | else a=(p[0]-'0')*10+p[1]-'0'; 14 | if(q[1]=='\0') b=q[0]-'0'; 15 | else b=(q[0]-'0')*10+q[1]-'0'; 16 | 17 | n=strlen(m);i=0; 18 | while(m[i]=='0') 19 | i++; 20 | str=i;sum=0;dx=1; 21 | for(i=n-1;i>=str;i--) 22 | { 23 | if(m[i]>='0'&& m[i]<='9') 24 | sum=sum+(m[i]-'0')*dx; 25 | else if(m[i]>='a'&& m[i]<='f') 26 | sum=sum+((m[i]-'a')+10)*dx; 27 | else if(m[i]>='A'&& m[i]<='F') 28 | sum=sum+((m[i]-'A')+10)*dx; 29 | else ; 30 | dx=dx*a; 31 | } 32 | i=0; 33 | while(sum/b!=0) 34 | { 35 | if(sum%b>9) m[i]=(sum%b-10)+'A'; 36 | else m[i]=sum%b+'0'; 37 | sum=sum/b; 38 | i++; 39 | } 40 | if(sum%b>9) m[i]=(sum%b-10)+'A'; 41 | else m[i]=sum%b+'0'; 42 | n=i; 43 | for(i=n;i>=0;i--) 44 | printf("%c",m[i]); 45 | printf("\n"); 46 | } 47 | 48 | return 0; 49 | } 50 | -------------------------------------------------------------------------------- /kaoyan/19:打印极值点下标.txt: -------------------------------------------------------------------------------- 1 | 3 2 | 10 3 | 10 12 12 11 11 12 23 24 12 12 4 | 15 5 | 12 12 122 112 222 211 222 221 76 36 31 234 256 76 76 6 | 15 7 | 12 14 122 112 222 222 222 221 76 36 31 234 256 76 73 8 | 9 | 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | using namespace std; 16 | int main() 17 | { 18 | int n,i,m,j,count; 19 | while(scanf("%d",&n)!=EOF) 20 | { 21 | int num[80],key[80]; 22 | for(i=0;inum[j+1] && num[j]>num[j-1]) || (num[j] 5 | #include 6 | #define Isyear(x) x % 100!=0 && x % 4==0 || x%400==0 ? 1: 0 7 | int dat[13][2]={ 8 | 0,0,31,31,28,29,31,31,30,30,31,31,30,30, 9 | 31,31,31,31,30,30,31,31,30,30,31,31, 10 | }; 11 | struct Date{ 12 | int year; 13 | int month; 14 | int day; 15 | void nextday() 16 | { 17 | day++; 18 | if(day>dat[month][Isyear(year)]) 19 | { 20 | day=1;month++; 21 | if(month>12) { month=1;year++;} 22 | } 23 | } 24 | }; 25 | int buf[5001][13][32]; 26 | int main() 27 | { 28 | int year,month,day,sum,da1,da2; 29 | char m[10]; 30 | Date date; 31 | date.year=0;date.month=1;date.day=1; 32 | sum=0; 33 | while(date.year!=5001) 34 | { 35 | buf[date.year][date.month][date.day]=sum; 36 | date.nextday(); 37 | sum++; 38 | } 39 | while(scanf("%4d%2d%2d",&year,&month,&day)!=EOF) 40 | { 41 | 42 | da1=buf[year][month][day]; 43 | scanf("%4d%2d%2d",&year,&month,&day); 44 | da2=buf[year][month][day]; 45 | if(da1>da2) 46 | printf("%d\n",da1-da2+1); 47 | else 48 | printf("%d\n",da2-da1+1); 49 | } 50 | return 0; 51 | } -------------------------------------------------------------------------------- /kaoyan/71:还是畅通工程.txt: -------------------------------------------------------------------------------- 1 | 3 2 | 1 2 1 3 | 1 3 2 4 | 2 3 4 5 | 4 6 | 1 2 1 7 | 1 3 4 8 | 1 4 1 9 | 2 3 3 10 | 2 4 2 11 | 3 4 5 12 | 13 | #include 14 | #define N 101 15 | #include 16 | using namespace std; 17 | int tree[N]; 18 | struct Edge{ 19 | int a;int b; 20 | int cost; 21 | }edge[5000]; 22 | bool cmp(Edge a,Edge b) 23 | { 24 | return a.cost0) 31 | x=tree[x]; 32 | ret=x;x=tmp; 33 | while(tree[x]>0) 34 | { 35 | t=tree[x]; 36 | tree[x]=ret; 37 | x=t; 38 | } 39 | return ret; 40 | }; 41 | int main() 42 | { 43 | int n,i,x,y,j,sum; 44 | while( scanf("%d",&n)!=EOF && n!=0 ) 45 | { 46 | j=n*(n-1)/2;sum=0; 47 | for(i=0;i 2 | #include 3 | #include 4 | using namespace std; 5 | 6 | int main() 7 | { 8 | int n,buf[1000],max,i; 9 | while(scanf("%d",&n)!=EOF) 10 | { 11 | for(i=0;i 35 | #include 36 | #include 37 | using namespace std; 38 | 39 | int main() 40 | { 41 | int n,buf[1000],max,i; 42 | while(scanf("%d",&n)!=EOF) 43 | { 44 | for(i=0;i 2 | #include 3 | #include 4 | using namespace std; 5 | int num[10][10],dis[10][10],tmp1[10][10],tmp2[10][10]; 6 | int mul(int a[10][10],int b[10][10],int i,int j,int n) 7 | { 8 | int k,sum=0; 9 | for(k=0;k0) 19 | { 20 | scanf("%d%d",&n,&k); 21 | for(i=0;i 6 | #include 7 | #include 8 | struct Node{ 9 | Node *lchild; 10 | Node *rchild; 11 | int date; 12 | }tree[101]; 13 | int cnt=0; 14 | Node * creat() 15 | { 16 | Node *s; 17 | s=&tree[cnt]; 18 | scanf("%d",&s->date); 19 | s->lchild=NULL;s->rchild=NULL; 20 | cnt++; 21 | return s; 22 | }; 23 | Node * insert(Node *T,Node *a) 24 | { 25 | int tag; 26 | Node *s,*pre=NULL; 27 | s=T; 28 | if(T==NULL) T=a; 29 | else 30 | { 31 | while(s!=NULL) 32 | { 33 | pre=s; 34 | if(a->date>s->date) 35 | { 36 | s=s->rchild;tag=1; 37 | } 38 | else if(a->datedate) 39 | { 40 | s=s->lchild;tag=0; 41 | } 42 | else break; 43 | } 44 | if(s==NULL) 45 | { 46 | if(tag==0) pre->lchild=a; 47 | else pre->rchild=a; 48 | } 49 | } 50 | return T; 51 | }; 52 | void pre(Node *T) 53 | { 54 | printf("%d ",T->date); 55 | if(T->lchild!=NULL) 56 | pre(T->lchild); 57 | if(T->rchild!=NULL) 58 | pre(T->rchild); 59 | } 60 | void mid(Node *T) 61 | { 62 | if(T->lchild!=NULL) 63 | mid(T->lchild); 64 | printf("%d ",T->date); 65 | if(T->rchild!=NULL) 66 | mid(T->rchild); 67 | } 68 | void lat(Node *T) 69 | { 70 | if(T->lchild!=NULL) 71 | lat(T->lchild); 72 | if(T->rchild!=NULL) 73 | lat(T->rchild); 74 | printf("%d ",T->date); 75 | } 76 | int main() 77 | { 78 | int n,i; 79 | while(scanf("%d",&n)!=EOF) 80 | { 81 | Node *p,*T=NULL; 82 | cnt=0; 83 | for(i=0;i 9 | #include 10 | #include 11 | #define Isyear(x) x % 100!=0 && x % 4==0 || x%400==0 ? 1: 0 12 | int dat[13][2]={ 13 | 0,0,31,31,28,29,31,31,30,30,31,31,30,30, 14 | 31,31,31,31,30,30,31,31,30,30,31,31, 15 | }; 16 | struct Date{ 17 | int year; 18 | int month; 19 | int day; 20 | void nextday() 21 | { 22 | day++; 23 | if(day>dat[month][Isyear(year)]) 24 | { 25 | day=1;month++; 26 | if(month>12) { month=1;year++;} 27 | } 28 | } 29 | }; 30 | int buf[2002][13][32]; 31 | int trans(char s[10]) 32 | { 33 | if(strcmp(s,"January")==0) return 1; 34 | else if(strcmp(s,"February")==0) return 2; 35 | else if(strcmp(s,"March")==0) return 3; 36 | else if(strcmp(s,"April")==0) return 4; 37 | else if(strcmp(s,"May")==0) return 5; 38 | else if(strcmp(s,"June")==0) return 6; 39 | else if(strcmp(s,"July")==0) return 7; 40 | else if(strcmp(s,"August")==0) return 8; 41 | else if(strcmp(s,"September")==0) return 9; 42 | else if(strcmp(s,"October")==0) return 10; 43 | else if(strcmp(s,"November")==0) return 11; 44 | else return 12; 45 | }; 46 | char week[7][20]={ 47 | "Sunday", 48 | "Monday", 49 | "Tuesday", 50 | "Wednesday", 51 | "Thursday", 52 | "Friday", 53 | "Saturday" 54 | }; 55 | int main() 56 | { 57 | int d,y,mon,sum,dx=1000; 58 | char m[10]; 59 | Date date; 60 | int da1,da2,key;//2013 1 30 we 61 | while(scanf("%d %s %d",&d,&m,&y)!=EOF) 62 | { 63 | date.year=1000;date.month=1;date.day=1; 64 | sum=0; 65 | while(date.year!=3001) 66 | { 67 | buf[date.year-dx][date.month][date.day]=sum; 68 | date.nextday(); 69 | sum++; 70 | } 71 | da1=buf[2013-dx][1][30]; 72 | da2=buf[y-dx][trans(m)][d]; 73 | if(da1>da2) 74 | { 75 | key=da1-da2;key=(3-key%7+7)%7; 76 | } 77 | else 78 | { 79 | key=da2-da1;key=(key%7+3)%7; 80 | } 81 | printf("%s\n",week[key]); 82 | } 83 | return 0; 84 | } -------------------------------------------------------------------------------- /Learn-Algorithm/1.1二叉树建立遍历.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | using namespace std; 5 | struct BitNode{ 6 | BitNode *lchild; 7 | BitNode *rchild; 8 | char value; 9 | }; 10 | 11 | queue Q; 12 | 13 | BitNode* createBittree(BitNode* T){ 14 | 15 | char nodeValue ; 16 | scanf("%c",&nodeValue); 17 | if(nodeValue == '#'){ 18 | T = NULL; 19 | }else{ 20 | T = (BitNode*)malloc(sizeof(BitNode)); 21 | T->value = nodeValue ; 22 | T->lchild=createBittree(T->lchild); 23 | T->rchild=createBittree(T->rchild); 24 | } 25 | return T; 26 | } 27 | 28 | void preTree(BitNode* T){ 29 | if(T){ 30 | printf("%c ",T->value); 31 | preTree(T->lchild); 32 | preTree(T->rchild); 33 | } 34 | } 35 | 36 | void midTree(BitNode* T){ 37 | if(T){ 38 | midTree(T->lchild); 39 | printf("%c ",T->value); 40 | midTree(T->rchild); 41 | } 42 | } 43 | 44 | void lastTree(BitNode* T){ 45 | if(T){ 46 | lastTree(T->lchild); 47 | lastTree(T->rchild); 48 | printf("%c ",T->value); 49 | } 50 | } 51 | 52 | void travelTree(BitNode* T){ 53 | BitNode* treeNode; 54 | //clear the queue 55 | while(!Q.empty()){ 56 | Q.pop(); 57 | } 58 | if(T){ 59 | Q.push(T); 60 | } 61 | if(Q.empty()){ 62 | printf("A empty tree\n"); 63 | }else{ 64 | while(!Q.empty()){ 65 | treeNode = Q.front(); 66 | Q.pop(); 67 | printf("%c ",treeNode->value); 68 | if(treeNode->lchild) 69 | Q.push(treeNode->lchild); 70 | if(treeNode->rchild) 71 | Q.push(treeNode->rchild); 72 | } 73 | } 74 | } 75 | //input a string of char contains empty and end with '/n' 76 | int main(int argc, char const *argv[]) 77 | { 78 | BitNode *root =NULL; 79 | 80 | printf("输入二叉树字符,#表示空节点\n"); 81 | root = createBittree(root); 82 | 83 | printf("输出层序遍历:"); 84 | travelTree(root); 85 | printf("\n输出先序遍历:"); 86 | preTree(root); 87 | printf("\n输出中序遍历:"); 88 | midTree(root); 89 | printf("\n输出后序遍历:"); 90 | lastTree(root); 91 | printf("\n"); 92 | 93 | 94 | return 0; 95 | } 96 | /* 97 | TEST: AB#C##D## 98 | 预期结果: 99 | 层序:ABDC 100 | 先序:ABCD 101 | 中序:BCAD 102 | 后序:CBDA 103 | */ --------------------------------------------------------------------------------