tyvj p1214硬幣問題(完全背包)

來源:互聯網
上載者:User
☆硬幣問題  
     
   
  描述 Description  
   有n種硬幣,面值為別為a[1],a[2],a[3]……a[n],每種都有無限多。給定非負整數s,可以選取多少個硬幣使得面值和恰好為s?輸出硬幣數目最小值和最大值
     
     
  輸入格式 Input Format  
  第1行n
第2行s
第3到n+2行為n種不同的面值
     
     
  輸出格式 Output Format  
  第1行為最小值
第2行為最大值
 
  範例輸入 Sample Input [複製資料]  
  3<br />6<br />1<br />2<br />3
     

 

 

 

 

範例輸出 Sample Output [複製資料]

 

 

2<br />6

 

f[v]表示用v個硬幣裝滿s,f[v]=min(f[v-a[i]])+1,特別注意初始化……

 

#include <iostream>using namespace std;int da[10005],d[10005],a[105];int main(){int n,s,i,j;while(cin>>n){cin>>s;for(i=1;i<=n;i++)cin>>a[i];for(i=0;i<=s;i++){da[i]=-100010;d[i]=100010;}d[0]=da[0]=0;for(j=0;j<=s;j++)for(i=1;i<=n;i++)  if(j>=a[i]) {d[j]=min(d[j],d[j-a[i]]+1);da[j]=max(da[j],da[j-a[i]]+1);}cout<<d[s]<<endl<<da[s]<<endl;}return 0;}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.