Tiling
Time Limit: 1000MS |
|
Memory Limit: 65536K |
Total Submissions: 7897 |
|
Accepted: 3841 |
Description
In what many ways can you tile a 2xn rectangle by 2x1 or 2x2 tiles?
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 Rectan Gle.
Sample Input
2812100200
Sample Output
317127318451004001521529343311354702511071292029505993517027974728227441735014801995855195223534251
50PS: Thought to use the method of large number to write a function, and then call it, it is too troublesome, and then fly God told me this method, too magical, a total of only 250,250*110 decisive burst. Each bit of a large number is stored in a two-dimensional array. It feels like I'm still too young sad~
#include <stdio.h> #include <string.h> #include <stdlib.h>char a[310][120];int main () { int n,i,j ; Memset (A, ' 0 ', sizeof (a)); a[0][0]= ' 1 '; a[1][0]= ' 1 '; a[2][0]= ' 3 '; For (i=3, i<=250; i++) {for (j=0; j<110; j + +) { int sum=2* (a[i-2][j]-' 0 ') +a[i-1][j]-' 0 ' +a[i][j ]-' 0 '; a[i][j]=sum%10+ ' 0 '; a[i][j+1]=sum/10+ ' 0 '; } } while (~SCANF ("%d", &n)) { int flag=0; for (i=110; i>=0; i--) if (a[n][i]!= ' 0 ') { flag=i; break; } for (I=flag; i>=0; i--) printf ("%c", A[n][i]); printf ("\ n"); } return 0;}
POJ 2506-tiling (recursive + large number)