2019 9 27 自然數的拆分

2022-05-08 20:06:08 字數 776 閱讀 1383

題目描述

給定乙個自然數n,要求把n拆分成若干個正整數相加的形式,參與加法運算的數可以重複。求拆分的方案數mod 2147483648的結果。1≤n≤4000。 

輸入乙個整數n。

輸出輸出乙個數,即所有方案數 

因為這個數可能非常大,所以你只要輸出這個數 mod 2147483648 的餘數即可。 

樣例輸入

7

樣例輸出

14

提示7的拆分一共有14種情況 

7=1+6 

7=1+1+5 

7=1+1+1+4 

7=1+1+1+1+3 

7=1+1+1+1+1+2 

7=1+1+1+1+1+1+1 

7=1+1+1+2+2 

7=1+1+2+3 

7=1+2+4 

7=1+2+2+2 

7=1+3+3 

7=2+5 

7=2+2+3 

7=3+4 

簡單dp,注意只需要先列舉物品再列舉容量即可。

#include#include#include#define int long long

#define mod 2147483648

using namespace std;

int n,dp[100050];

signed main()

} printf("%lld",dp[n]);

return 0;

}

自然數拆分

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

自然數拆分

問題描述 自然數的拆分 任何乙個大於1的自然數n,總可以拆分成若干個自然數之和,並且有多種拆分方法。試求 n的所有拆分。例如自然數5,可以有如下一些拆分方法 5 1 1 1 1 1 5 1 1 1 2 5 1 2 2 5 1 4 5 2 3 注意,本題中n拆分出來的數x的範圍是1 x整數劃分可以參考...

自然數拆分

題目 給出sum min max和n四個正整數,請輸出所有將sum拆分為n個遞增的正整數 允許相等 之和,其中每個正整數k都滿足 min k max。在少俠的部落格 看到這道題 就隨手做了下。該題與輸出n個數取m個數的所有組合類似,只不過限定了m個數的和以及取值範圍。可以先用貪心演算法構造乙個最小的...