給定乙個自然數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 ...