链接
大意
在 到 的所有数中选出若干个数(可以重复),求方案数%2147483648
思路
为啥模数不是2147483648的平方。。。那样我就可以用自然溢出了
完全背包求方案数
代码
#include<cstdio>
using namespace std;int n;
unsigned f[4001];
signed main()
{
f[0]=1;
scanf("%d",&n);
for(register int i=1;i<=n;i++)
for(register int j=i;j<=n;j++)
f[j]=(f[j]+f[j-i])%2147483648u;//记得取模
printf("%u",f[n]>0?f[n]-1:2147483647);
}