POJ 2506 Tiling -递推大数
发布时间:2020-12-14 02:37:13 所属栏目:大数据 来源:网络整理
导读:题目链接:http://poj.org/problem?id=2506 递推: f [0] =1;//不要问为什么,递推就是这么推的 f[1] = 1; ?f[2] =3; ?f[n]= f[n-2]*2 + f[n-1]?; 大数: 二维数组 ? #includeiostream#includecstdio #includecstringusing namespace std;int dp[255][80
题目链接:http://poj.org/problem?id=2506 递推: f [0] =1;//不要问为什么,递推就是这么推的 f[1] = 1; ?f[2] =3; ?f[n]= f[n-2]*2 + f[n-1]?; 大数: 二维数组 ? #include<iostream> #include<cstdio> #include<cstring> using namespace std; int dp[255][80],a[80]; void init() { memset(dp,sizeof(dp)); memset(a,sizeof(a)); int i,j; int m; dp[0][1]=1; dp[1][1]=1; dp[2][1]=3; a[0]=a[1]=a[2]=1; for(i=3;i<=250;i++) //只能开到250 { m=a[i-1]; for(j=1;j<=m;j++) dp[i][j]=dp[i-1][j]+dp[i-2][j]*2; for(j=1;j<=m;j++) { if(dp[i][j]>9) { if(dp[i][m]>9) m++; dp[i][j+1]+=dp[i][j]/10; dp[i][j]%=10; } } a[i]=m; } } int main() { int n; while(~scanf("%d",&n))//!EOF { init(); int i; for(i=a[n];i>=1;i--) printf("%d",dp[n][i]); printf("n"); } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |