uva674 完全揹包

2021-06-22 00:17:13 字數 564 閱讀 8716

題意:

有5種硬幣1,5,10,25,50,;現在隨意的給出乙個價錢,問你有幾種組合方式!

輸入11

輸出41+...+1(10個),5+(6*1),5+5+1,  10+1(共4種)

思路;滿足完全揹包思想,狀態轉移方程:dp[i+num[k]] += dp[i](dp[i]為組合成i的不重複種數,num[k]分別為1,5,10,25,50)

不能合在一起轉移

,否則會導致重複!

**:#include #include#include#include#include#includeusing namespace std;

int coin[5]=;

int dp[10000];

int main()

{ int n;

while(cin>>n)

{fill(dp,dp+n+1,0);

dp[0]=1;

for(int i=0;i<5;i++)

for(int j=0;j<=n;j++)

dp[j+coin[i]]+=dp[j];

cout<

UVA 674 硬幣問題(完全揹包 列舉)

題意 給定金額n,有50,25,10,5,1這五種面值的錢,問共有多少種不同的找法 假設最少存在一種找法 這題我想了很久,都沒有找到合適的狀態轉移方程,最後看了別人寫的,又體會了半天,才算明白。分析 這題,寫不對原因在於,很容易就重複計算了。例如 11 中的 11111,5,111111 與 111...

UVA 674 揹包之殤

題目位址 本來以為對於簡單的揹包已經了解了,可還是在這道題上掛了彩。自己寫了兩種 第一種是對每類錢,列舉其拿的張數 dp i j 累加dp i 1 j k money 我覺得8000 的資料,n3 也無所謂的,交上去t了。俗語雲 t乃a之母 起碼說明演算法是正確的,於是開始想優化的方法。想起來 前幾...

uva10465 完全揹包

題目大意 乙個人可以花m分鐘吃一種漢堡,可以花n分鐘吃另外一種漢堡,問在t時間內最多可以吃幾個漢堡 應該盡可能的不浪費時間,如果真的非得浪費時間就用這些時間喝啤酒。輸出喝啤酒的時間。思路 揹包 貪心 完全揹包 include using namespace std include include i...