hdu2431 Counting problem

来源:互联网 发布:网络爱国事例 编辑:程序博客网 时间:2024/05/20 13:06

动态规划,最小表示法。

等价于整数n的划分方案数,每个数都要大于等于2。

至少有一个数。

#include<cstdio>#include<cstring>#include<string.h>using namespace std;const int maxn=505;const int m=1e6+7;int a[maxn];void init(){memset(a,0,sizeof(a));a[0]=1;for(int i=2;i<=maxn;i++){for(int j=i;j<=maxn;j++){a[j]+=a[j-i];if(a[j]>=m)a[j]-=m;}}}int main(){init();int casen,n;scanf("%d",&casen);while(casen--){scanf("%d",&n);printf("%d\n",a[n]);}return 0;}


原创粉丝点击