02 2018 档案
摘要:#include int main() { int m; int i; scanf("%d", &m); char x[5]; int y; int z; for (i = 0; i = 'A'&&x[0] <= 'Z') { z=(x[0] - 'A')+1; y = y + z; ...
阅读全文
摘要:/* 题目大意是指:有n个灯泡,按1-n编号,要操作n次,第i次操作是将标号是i的倍数的变成相反状态。最终求得是n次操作后,编号为n的灯泡的状态,其实就是求n的约束有多少个,及灯泡n被操作了多少次*/#include int main() { int m; int i; int sum = 0; int sum2, flag; while (~scanf...
阅读全文
摘要:#include int main() { int width, height; int i, j; while (~scanf("%d %d", &width, &height)) { if (width != 0 && height != 0) { printf("+"); for (i = 0; ...
阅读全文
摘要:#include int a[1000] = { 0 }; int main() { int m; int i, j = 0; while (~scanf("%d", &m)) { while (m) { a[j++] = m % 2; m = m / 2; } for (i ...
阅读全文
摘要:/* 思路:有n位新郎,但是又m位新郎会找错,那么有n-m位新郎会找对,而找对的n-m位新郎的找发就是在 n位新郎中随机找n-m位有多少种排列组合公式有n!/(m!*(n-m!)),而另外找错的新郎则按照错排公式来做 D(n)=(n-1)*(D(n-1)+D(n-2)) */ #include long long p[25] = { 1,1,0,0 }; long long q[2...
阅读全文
摘要:#include long long a[22] = { -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 }; long long b[22] = { 0 }; long long jiecheng(int n) { if (b[n]>0) { return b[n]; } ...
阅读全文
摘要:/* 主要看最后一个是否为O,若为O,则倒数第二个不能为O,则为a[n-2]*1*2; 若不为O,则最后一个有两个选择则为a[n-1]*2 */ #include long long a[40] = { 0 }; long long recrusion(int n) { if (a[n] > 0) { return a[n]; } retu...
阅读全文
摘要:#include long long a[50] = { 0 }; long long recrusion(int n) { if (n0) { return a[n]; } return a[n] = recrusion(n - 1) + recrusion(n - 2); } int main() { int n; a[0] = ...
阅读全文
摘要:/* 当最后一个块可以和第一个块染相同颜色时,答案为:3*pow(2,n-1);但是最后一块不能和第一块颜色相同,则减去和第一 块颜色相同的染色种数即可 3*pow(2,n-1)-ranse(n-1) */ #include #include long long a[50] = { 0 }; long long ditui(int n) { if (n 0) { ...
阅读全文