動態規劃 貨幣面值

2022-07-16 17:15:13 字數 1008 閱讀 5578

題目描述

魔法世界發行了很多不同面值的紙幣,試求出用這些紙幣進行任意的組合不能表示的最小面值是多少。

輸入輸入包含多個測試用例,每組測試用例的第一行輸入乙個整數n(n≤100)表示流通的紙幣面額數量,第二行是n個紙幣的具體表示面額,取值範圍為1~100。

輸出對於每組測試用例,輸出乙個整數,表示已經發行的所有紙幣都不能表示的最小面值(已經發行的每個紙幣面值最多只能使用一次,但面值可能有重複)。

樣例輸入

5

1 2 3 9 100

51 2 4 9 100

51 2 4 7 100

樣例輸出
7815

#includeusing

namespace

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 貨幣是在國家或經濟體內的物資與服務交換中充當等價物,或是償還債務的特殊商品,是用作交易媒介 儲藏價值和記賬單位的一種工具。魔法世界的貨幣的歷史,可以追溯至史前以物易物的階段,後來經過金屬貨幣 金銀 紙幣以及金銀本位制度,演化至現代...