題目描述
魔法世界發行了很多不同面值的紙幣,試求出用這些紙幣進行任意的組合不能表示的最小面值是多少。
輸入輸入包含多個測試用例,每組測試用例的第一行輸入乙個整數n(n≤100)表示流通的紙幣面額數量,第二行是n個紙幣的具體表示面額,取值範圍為1~100。
輸出對於每組測試用例,輸出乙個整數,表示已經發行的所有紙幣都不能表示的最小面值(已經發行的每個紙幣面值最多只能使用一次,但面值可能有重複)。
樣例輸入
5樣例輸出1 2 3 9 100
51 2 4 9 100
51 2 4 7 100
7815
#includeusingnamespace
std;
intmain()
;
int sum = 0
;
for(int i=0;i)
int dp[10005]=;
for(int i=0;i)
}int flag = 0
;
for(int i=1;i<=sum;i++)
}if(!flag) //
********
cout<1
<}
return0;
}
一道變向0/1揹包問題
給你幾個數 問你不能組合成的最小的數,
組合成乙個數,面對其中乙個元素 無非就是選與不選 ,而
01揹包中dp[i]表示揹包為i大小的時候 最大能裝的價值
我們這道題dp[i]表示的是這個揹包能組合成的最大的數,這個數不會超過i的大小,所以如果dp[i]==i則說明能夠組合成這個數字。那麼,如果dp[i]!=i的話
就是無法組成這個數。
將i從1到sum遍歷一次 就能找到最小的 無法組合的數
注意:打*的**容易忽略 我就wa了一發 如果從1到sum都能組成 那麼最小不能組成的數就是sum+1了
動態規劃 貨幣面值
時間限制 1 sec 記憶體限制 64 mb 提交 115 解決 43 提交 狀態 討論版 命題人 題目描述 魔法世界發行了很多不同面值的紙幣,試求出用這些紙幣進行任意的組合不能表示的最小面值是多少。輸入輸入包含多個測試用例,每組測試用例的第一行輸入乙個整數n n 100 表示流通的紙幣面額數量,第...
LeetCode 中等 動態規劃 硬幣面值
硬幣。給定數量不限的硬幣,幣值為25分 10分 5分和1分,編寫 計算n分有幾種表示法。結果可能會很大,你需要將結果模上1000000007 示例1 輸入 n 5 輸出 2 解釋 有兩種方式可以湊成總金額 5 55 1 1 1 1 1 示例2 輸入 n 10 輸出 4 解釋 有四種方式可以湊成總金額...
動態規劃 貨幣系統問題
動態規劃 貨幣系統問題 時間限制 1 sec 記憶體限制 64 mb 貨幣是在國家或經濟體內的物資與服務交換中充當等價物,或是償還債務的特殊商品,是用作交易媒介 儲藏價值和記賬單位的一種工具。魔法世界的貨幣的歷史,可以追溯至史前以物易物的階段,後來經過金屬貨幣 金銀 紙幣以及金銀本位制度,演化至現代...