周赛 大数找规律
2015-08-22 13:11
309 查看
Problem A
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other)Total Submission(s) : 71 Accepted Submission(s) : 11
[align=left]Problem Description[/align]
In how many ways can you tile a 2xn rectangle by 2x1 or 2x2 tiles?
Here is a sample tiling of a 2x17 rectangle.
[align=left]Input[/align]
Input is a sequence of lines, each line containing an integer number 0 <= n <= 250.
[align=left]Output[/align]
For each line of input, output one integer number in a separate line giving the number of possible tilings of a 2xn rectangle.
[align=left]Sample Input[/align]
2 8 12 100 200
[align=left]Sample Output[/align]
3 171 2731 845100400152152934331135470251 1071292029505993517027974728227441735014801995855195223534251
//找规律的题,就是一块一块的加,每一次在前面的基础上加,也就相当于加一个2*1的矩形,它既可以放在前面,也可以放在后面,所以是2*a[n-1];但是加入的那一个可以和前面也可以构成一种情况,a[n-2]种情况,剩下就是大树的问题了,代码如下:
#include<stdio.h> #include<string.h> int aa[1000][100]; void sum() { aa[0][0]=1; aa[1][0]=1; aa[2][0]=3; int cnt,i,j; cnt=0; for(i=3;i<=1000;i++) for(j=0;j<100;j++) { cnt+=(aa[i-2][j])*2+aa[i-1][j]; aa[i][j]=cnt%10; cnt/=10; } } int main() { sum(); int n; while(scanf("%d",&n)!=EOF) { int i; for(i=99;i>=0;i--) if( aa [i]!=0) break; for(;i>=0;i--) printf("%d",aa [i]); printf("\n"); } }
相关文章推荐
- 双关键字快排
- 游戏摄像头漫游——3维坐标变换
- asp.net给DropDownList添加ToolTip(title)属性
- Codeforces Round #313 (Div. 2) C. Gerald's Hexagon
- 广度优先搜索和深度优先搜索
- shell网络管理
- 关于shell变量的第一个shell脚本
- iOS Code Signing到底什么鬼
- 关于驱动程序转换小写的问题
- UVA 10673 Play with Floor and Ceil
- Android应用程序组件(三)
- 压力测试衡量CPU的三个指标:CPU Utilization、Load Average和Context Switch Rate
- 网易前端面试总结
- Linux安装rz/sz命令
- UVA 10537 - The Toll! Revisited(dijstra扩张)
- 洛谷1425 小鱼的游泳时间
- bzoj1996:合唱队
- Maven多环境参数管理
- hdu1012 u Calculate e
- textarea标签没有左对齐显示数据