完全揹包問題 自然數拆分

2021-09-22 21:25:19 字數 501 閱讀 7680

給定乙個自然數n,要求把n拆分成若干個正整數相加的形式,參與加法運算的數可以重複。

求拆分的方案數 mod 2147483648的結果。

輸入格式

乙個自然數n。

輸出格式

輸入乙個整數,表示結果。

資料範圍

1≤n≤4000

輸入樣例:

7輸出樣例:

14因為參加的數可以重複,所以這是乙個完全揹包問題。注意在輸出答案的的時候需要dp[n]–

#includeusing namespace std;

const int maxn = 4001;

const int mod = 2147483648;

long long dp[maxn];

int n;

int main ()

}dp[n] --;

cout << dp[n];

return 0;

}

自然數的拆分(完全揹包)

給定乙個自然數n,要求把n拆分成若干個正整數相加的形式,參與加法運算的數可以重複。與 自然數拆分問題 類似,同樣需要滿足方案的不重複。所謂拆分方式的重複性判定如下 給定n a 1 a 2 a m1 和 n b 1 b 2 b m2 表示整數n的兩種拆分方式。對於 a i b j 1,令集合a b 若...

揹包dp 自然數拆分Lunatic版

題意 給定乙個自然數n 1 n 4000 要求把自然數n拆分成n個正整數相加的情況 正整數可以重複出現,但順序不同仍視為同一種情況qaq 求方案數mod 2147483648的值 完全揹包求方案數 又雙叒叕不開long long 見祖宗 1 n可以視為n種物品,每種物品均可無限次使用,揹包容積為n,...

自然數拆分

描述 description 輸入自然數n,然後將其拆分成由若干數相加的形式,參與加法運算的數可以重複。輸入格式 inputformat 輸入只有乙個整數n,表示待拆分的自然數n。n 80 輸出格式 outputformat 輸出乙個數,即所有方案數 樣例輸入 sampleinput 複製資料 7 ...