poj 2193 dp

来源:互联网 发布:sm3算法 编辑:程序博客网 时间:2024/06/08 13:41

蛮简单的dp,只是要注意会超int

dp[i][j]代表i个数以j结尾的数列个数

#include<stdio.h>#include<string.h>__int64 dp[11][2001];int i,j,k;void init(){memset(dp,0,sizeof(dp));for(i=1;i<=2000;i++)dp[1][i]=1;for(i=2;i<=10;i++){for(j=i;j<=2000;j++){for(k=1;k<=j/2;k++){dp[i][j]+=dp[i-1][k];}}}}int main(){     int n,m,t,cases=1;scanf("%d",&t);init(); while(t--){__int64 ans=0;scanf("%d%d",&n,&m);        for(i=1;i<=m;i++)ans+=dp[n][i];printf("Case %d: n = %d, m = %d, # lists = %I64d\n",cases++,n,m,ans);}return 0;}

  

原创粉丝点击