Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3981 Accepted Submission(s): 1484
3 1 11 11111
1 2 8
#include<stdio.h> #include<string.h> #include<math.h> #define MAX 2000+10 char str[210]; int dp[210][MAX]; int main() { int t,n,i,j,l; memset(dp,0,sizeof(dp)); dp[1][0]=1;dp[2][0]=2; for(i=3;i<=200;i++) { for(j=0;j<MAX;j++) { dp[i][j]+=dp[i-1][j]+dp[i-2][j]; if(dp[i][j]>=10) { dp[i][j+1]+=1; dp[i][j]-=10; } } } scanf("%d",&t); while(t--) { scanf("%s",str); l=strlen(str); for(i=MAX-1;i>=0;i--) if(dp[l][i]!=0) break; for(;i>=0;i--) printf("%d",dp[l][i]); printf("\n"); } return 0; }