poj2506--Tiling
来源:互联网 发布:移动网络哪家 编辑:程序博客网 时间:2024/06/05 07:07
Tiling
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 7288 Accepted: 3546
Description
In how many ways can you tile a 2xn rectangle by 2x1 or 2x2 tiles?
Here is a sample tiling of a 2x17 rectangle.
Here is a sample tiling of a 2x17 rectangle.
Input
Input is a sequence of lines, each line containing an integer number 0 <= n <= 250.
Output
For each line of input, output one integer number in a separate line giving the number of possible tilings of a 2xn rectangle.
Sample Input
2812100200
Sample Output
317127318451004001521529343311354702511071292029505993517027974728227441735014801995855195223534251
Source
The UofA Local 2000.10.14
递推的题目主要还是找到规律,这个题的规律比较明显,p[n]的情况可以由p[n-1]加一个竖的,或是由p[n-2]加两个横的,或是p[n-2]加上一个大块得到 由此推出,p[n] = p[n-1] + p[n-2] * 2 ;
还有的就是一个大数问题,很好解决的大数的加法
#include <stdio.h>struct node{ int a[1000] ; int top ;}p[300];int main(){ int n , i ; p[0].a[0] = 1 ; p[0].top = 1 ; p[1].a[0] = 1 ; p[1].top = 1 ; for(i = 2 ; i <= 250 ; i++) { int j , s = 0 , k = 0 ; for(j = 0 ; j < p[i-1].top ; j++) { s = p[i-1].a[j] + p[i-2].a[j] * 2 + k ; p[i].a[j] = s % 10 ; k = s / 10 ; } p[i].top = p[i-1].top ; if(k != 0) { p[i].a[j] = k ; p[i].top++ ; } } while(scanf("%d", &n) !=EOF) { for(i = p[n].top-1 ; i >= 0 ; i--) { printf("%d", p[n].a[i]); } printf("\n"); } return 0;}
0 0
- poj2506--Tiling
- POJ2506,Tiling
- POJ2506-Tiling
- poj2506--Tiling
- POJ2506-Tiling
- POJ2506 Tiling 【大数和】
- poj2506-Tiling(规律,大数)
- POJ2506——Tiling
- POJ2506 Tiling【高精度】【递推】
- POJ2506 Tiling(递推+大数)
- poj2506——Tiling(递推+大数加)
- POJ2506——Tiling(高精度+递推)
- POJ2506
- poj2506
- Tiling
- Tiling
- Tiling
- Tiling
- od命令
- LayerColor和LayerGradient
- UltraEdit-32 21.00.1030 破解说明
- 使用SeaJS实现模块化JavaScript开发
- mybatis generator 使用
- poj2506--Tiling
- 项目实践
- 栈应用--斐波拉契数列
- leetcode之ZigZag Conversion
- c# 编写Windows服务程序
- 利用WebBrowser控件实现百度自动搜索
- PAT A 1053. Path of Equal Weight (30)
- Javascript 函数parseInt()转换丢失精度出现bug
- Joseph圆圈报数问题解法