題目描述:有若干張郵票,要求從中選取最少的郵票張數湊成乙個給定的總值。
如,有1分,3分,3分,3分,4分五張郵票,要求湊成10分,則使用3張郵票:3分、3分、4分即可。
輸入:有多組資料,對於每組資料,首先是要求湊成的郵票總值m,m<100。然後是乙個數n,n〈20,表示有n張郵票。接下來是n個正整數,分別表示這n張郵票的面值,且以公升序排列。
輸出:對於每組資料,能夠湊成總值m的最少郵票張數。若無解,輸出0。
樣例輸入:
1051 3 3 3 4
樣例輸出:
3
動態規劃問題,和之後的兩船載物、今年暑假不ac、招聘會、熱愛生活(發大公尺)、dota等均為同一型別題目,揹包問題。
在該題中採用動態規劃,跟0-1揹包問題一樣,知道每個郵票的值,求恰好滿足value的最小個數,只是這裡求的是個數不是最大value,計算從1到m面值的最小郵票數 。更新如下
for(int j = m;j>=num[i];j--)
return 0;
}
或者
void minnum(int m,int n)
}if(dp[m]
最小郵票數
時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 1680 解決 558 題目描述 有若干張郵票,要求從中選取最少的郵票張數湊成乙個給定的總值。如,有1分,3分,3分,3分,4分五張郵票,要求湊成10分,則使用3張郵票 3分 3分 4分即可。輸入 有多組資料,對於每組資料,首先是要求湊成的...
最小郵票數
有若干張郵票,要求從中選取最少的郵票張數湊成乙個給定的總值。如,有1分,3分,3分,3分,4分五張郵票,要求湊成10分,則使用3張郵票 3分 3分 4分即可。有多組資料,對於每組資料,首先是要求湊成的郵票總值m,m 100。然後是乙個數n,n 20,表示有n張郵票。接下來是n個正整數,分別表示這n張...
最小郵票數
有若干張郵票,要求從中選取最少的郵票張數湊成乙個給定的總值。如,有1分,3分,3分,3分,4分五張郵票,要求湊成10分,則使用3張郵票 3分 3分 4分即可。有多組資料,對於每組資料,首先是要求湊成的郵票總值m,m 100。然後是乙個數n,n 20,表示有n張郵票。接下來是n個正整數,分別表示這n張...