揹包dp 自然數拆分Lunatic版

2022-04-28 17:27:09 字數 511 閱讀 7105

題意:給定乙個自然數n(1<= n <= 4000), 要求把自然數n拆分成n個正整數相加的情況(正整數可以重複出現, 但順序不同仍視為同一種情況qaq)

求方案數mod 2147483648的值

完全揹包求方案數(又雙叒叕不開long long 見祖宗

)1 ~ n可以視為n種物品, 每種物品均可無限次使用, 揹包容積為n, 求最終裝滿揹包的方案數

完全揹包板子上! 

邊界dp[0] = 1, 最終記得將ans - 1

不開long long 或者 unsigned int 只有一半的分數

#include#include

using

namespace

std;

const

int sz = 4040, mod = 2147483648

;int n, ans = 0

;unsigned

intdp[sz];

intmain()

完全揹包問題 自然數拆分

給定乙個自然數n,要求把n拆分成若干個正整數相加的形式,參與加法運算的數可以重複。求拆分的方案數 mod 2147483648的結果。輸入格式 乙個自然數n。輸出格式 輸入乙個整數,表示結果。資料範圍 1 n 4000 輸入樣例 7輸出樣例 14因為參加的數可以重複,所以這是乙個完全揹包問題。注意在...

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

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

自然數拆分

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