hdu1041【找规律】
来源:互联网 发布:addiction动作数据 编辑:程序博客网 时间:2024/05/16 10:31
Computer Transformation
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 7862 Accepted Submission(s): 2942
Problem Description
A sequence consisting of one digit, the number 1 is initially written into a computer. At each successive time step, the computer simultaneously tranforms each digit 0 into the sequence 1 0 and each digit 1 into the sequence 0 1. So, after the first time step, the sequence 0 1 is obtained; after the second, the sequence 1 0 0 1, after the third, the sequence 0 1 1 0 1 0 0 1 and so on.
How many pairs of consequitive zeroes will appear in the sequence after n steps?
Input
Every input line contains one natural number n (0 < n ≤1000).
Output
For each input n print the number of consecutive zeroes pairs that will appear in the sequence after n steps.
Sample Input
2
3
Sample Output
1
1
题解:计算机能把1变成01,0变成10,问第n步后00的个数
step0:1
step1:0 1
step2:10 01
step3:0110 1001
step4:1001 0110 0110 1001
step5:0110 1001 1001 0110 1001 0110 0110 1001
第n步的00由n-1步的01变化而来,第n-1步的01则由n-2步的1变化而来
除此之外,第n-2步的00->1010->01100110也贡献一个00
所以F(n)=F(n-2)+2^(n-3)(即n-2步里1的个数)
代码:
#include <iostream>#include <string>#include <cstring>#include <cstdio>#include <cmath>#include <cstdlib>#include <algorithm>#include <queue>#include <map>#define MST(s,q) memset(s,q,sizeof(s))#define INF 0x3f3f3f3f#define MAXN 9999using namespace std;int a[1005][1001];//F(n) = F(n - 2) + 2 ^ (n - 3);void deal(){ MST(a, 0); a[0][1] = 1; a[1][1] = 0, a[2][1] = 1, a[3][1] = 1; for (int i = 4; i <= 1000; i++) { int r = 0; for (int j = 1; j <= 1000; j++) { a[0][j] *= 2; a[0][j] += r; r = 0; if (a[0][j] > 9) { r = 1; a[0][j] -= 10; } } r = 0; for (int j = 1; j <= 1000; j++) { a[i][j] = a[i - 2][j] + a[0][j] + r;; r = 0; if (a[i][j] > 9) { r = 1; a[i][j] -= 10; } } }}int main(){ deal(); int n; while (cin >> n) { if (n == 1) { cout << 0 << endl; continue; } int i = 1000; while (a[n][i] == 0)i--; for (; i >= 1; i--) printf("%d", a[n][i] ); printf("\n"); }}
- hdu1041【找规律】
- hdu1041 Computer Transformation 大数找规律
- hdu1041规律+大数
- HDU1041
- 找规律
- 找规律!
- 找规律
- 找规律,
- 找规律
- 找规律
- 找规律
- 找规律
- 找规律
- 找规律
- 找规律
- 找规律
- 找规律
- 递归(找规律、找出口)
- spring MVC 的MultipartFile转File读取
- Maven仓库—Nexus环境搭建及简单介绍
- 外观模式(Facade Pattern) - 最易懂的设计模式解析
- html页面里的幽灵空行——UTF8-BOM
- maven中plugins和pluginmanagement的区别
- hdu1041【找规律】
- dispatch_sync死锁
- Material Design (三) Navigation Drawer的使用
- 归并排序算法
- oracle 取前N条记录
- 信息化基础知识 典型试题分析
- 前端初探-JavaScript
- APT技术
- asp.net通过js给TextBox赋值