CH 5202 自然数拆分Lunatic版

题目

n 拆分成若干个正整数相加的形式,正整数可以重复,问方案数 m o d 2 31


分析

完全背包,
状态转移方程: f [ j ] = ( f [ j ] + f [ j i ] ) and 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);
}

猜你喜欢

转载自blog.csdn.net/sugar_free_mint/article/details/81807019
今日推荐