4117 簡單的整數劃分問題(動態規劃)

2022-05-10 07:33:07 字數 715 閱讀 5658

總時間限制: 

100ms

記憶體限制: 

65536kb

描述將正整數n 表示成一系列正整數之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。

正整數n 的這種表示稱為正整數n 的劃分。正整數n 的不同的劃分個數稱為正整數n 的劃分數。

輸入標準的輸入包含若干組測試資料。每組測試資料是乙個整數n(0 < n <= 50)。

輸出對於每組測試資料,輸出n的劃分數。

樣例輸入

5
樣例輸出

7
提示

5, 4+1, 3+2, 3+1+1, 2+2+1, 2+1+1+1, 1+1+1+1+1

1

//解題思路:典型的動態規劃中的完全揹包問題2//

若輸入的數字為5,則可以看作其中包含5個物品,value分別為1,2,3,4,53//

每個物品可以選擇多次,最終將選擇的物品的value累加得數字54//

可以使用乙個一維的滾動陣列5//

狀態轉移方程:dp[j]=dp[j-i]+dp[j]

6 #include7

using

namespace

std;

8int

main()

18 cout << dp[n] <20return0;

21 }

4117 簡單的整數劃分問題

總時間限制 100ms 記憶體限制 65536kb 描述 將正整數n 表示成一系列正整數之和,n n1 n2 nk,其中n1 n2 nk 1 k 1 正整數n 的這種表示稱為正整數n 的劃分。正整數n 的不同的劃分個數稱為正整數n 的劃分數。輸入 標準的輸入包含若干組測試資料。每組測試資料是乙個整數...

POJ 4117 簡單的整數劃分問題

總時間限制 100ms 記憶體限制 65536kb 描述 將正整數n 表示成一系列正整數之和,n n1 n2 nk,其中n1 n2 nk 1 k 1 正整數n 的這種表示稱為正整數n 的劃分。正整數n 的不同的劃分個數稱為正整數n 的劃分數。輸入 標準的輸入包含若干組測試資料。每組測試資料是乙個整數...

dp演算法 poj 4117 簡單的整數劃分問題

總時間限制 100ms 記憶體限制 65536kb 描述將正整數n 表示成一系列正整數之和,n n1 n2 nk,其中n1 n2 nk 1 k 1 正整數n 的這種表示稱為正整數n 的劃分。正整數n 的不同的劃分個數稱為正整數n 的劃分數。輸入標準的輸入包含若干組測試資料。每組測試資料是乙個整數n ...