标签:错误 while fill problem orm stdin ica using memory
Description
Input
Output
Sample Input
Sample Output
/* 题意:给你储钱罐的重量和装满钱币的重量(给出储钱罐的容量),然后给你n种金币的价值和重量,让你求出必须装满,最少能装的价值 初步思路:每个物品都是无限的——完全背包 #错误:看到完全背包就直接写了,没看到是求最小值 */ #include <bits/stdc++.h> #define INF 0x3f3f3f3f #define N 505 using namespace std; int t; int e,f,n,m; int v[N],w[N]; int dp[10005];//dp[i]表示装满i的空间,最多能获得的金钱 void init(){ memset(dp,INF,sizeof dp); } int main(){ // freopen("in.txt","r",stdin); scanf("%d",&t); while(t--){ init(); scanf("%d%d",&e,&f); m=f-e; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d%d",&v[i],&w[i]); }//处理输入 dp[0]=0; for(int i=0;i<n;i++){ for(int j=w[i];j<=m;j++){; dp[j]=min(dp[j],dp[j-w[i]]+v[i]); } } // for(int i=0;i<=m;i++){ // cout<<dp[i]<<" "; // }cout<<endl; if(dp[m]==INF){ puts("This is impossible."); }else printf("The minimum amount of money in the piggy-bank is %d.\n",dp[m]); } return 0; }
标签:错误 while fill problem orm stdin ica using memory
原文地址:http://www.cnblogs.com/wuwangchuxin0924/p/6551074.html