總時間限制:
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 ...