HDU1114 Piggy-Bank 完全背包
生活随笔
收集整理的這篇文章主要介紹了
HDU1114 Piggy-Bank 完全背包
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:
給出一個存錢罐的空罐時的質量和裝了錢之后的質量,再給出一些硬幣的質量和相應的價值,問存錢罐里的錢最少可能為多少。
這道題就是完全背包的問題,注意初始化。
完全背包與01背包不同的是第二次遍歷的時候要順序而已。
初始化,這道題要求背包恰好裝滿,而且要求的值盡量少,所以dp[0]=0;其余設為無窮大。
1.若沒有要求恰好裝滿,則全為0.
2.若要求的值盡量大,則dp[0]=0;其余為無窮小。
1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 const int maxn=10000+10; 5 const int inf=0x3f3f3f3f; 6 int dp[maxn]; 7 int main() 8 { 9 int test; 10 scanf("%d",&test); 11 while(test--) 12 { 13 int e,f; 14 scanf("%d%d",&e,&f); 15 int m=f-e; 16 dp[0]=0; 17 for(int i=1;i<=m;i++) 18 dp[i]=inf; 19 int p,w,n; 20 scanf("%d",&n); 21 for(int i=1;i<=n;i++) 22 { 23 scanf("%d%d",&p,&w); 24 for(int j=w;j<=m;j++) 25 { 26 dp[j]=min(dp[j],dp[j-w]+p); 27 } 28 } 29 if(dp[m]==inf) 30 printf("This is impossible.\n"); 31 else 32 printf("The minimum amount of money in the piggy-bank is %d.\n",dp[m]); 33 } 34 return 0; 35 } View Code?
轉載于:https://www.cnblogs.com/-maybe/p/4380867.html
總結
以上是生活随笔為你收集整理的HDU1114 Piggy-Bank 完全背包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Sublime Text 3
- 下一篇: 修改PHP上传文件的大小限制