本文主要是介绍#完全背包#CH 5202 自然数拆分Lunatic版,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目
把 n n n拆分成若干个正整数相加的形式,正整数可以重复,问方案数 m o d 2 31 mod 2^{31} mod231
分析
完全背包,
状态转移方程: f [ j ] = ( f [ j ] + f [ j − i ] ) f[j]=(f[j]+f[j-i]) f[j]=(f[j]+f[j−i]) and 2147483648 ; 2147483648; 2147483648;
代码
#include <cstdio>
unsigned int n,f[4001];
int main(){scanf("%d",&n); f[0]=1;for (int i=1;i<=n;i++)for (int j=i;j<=n;j++)f[j]=(f[j]+f[j-i])&0x7fffffff;//完全背包return !printf("%d",f[n]-1);
}
这篇关于#完全背包#CH 5202 自然数拆分Lunatic版的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!