HDU 1114 Piggy-Bank
一道完全背包的模板题。
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define inf 0x3f3f3f3f int t,e,f,n; int v[505],w[505],dp[10010];//当前容量小能选择的最小的价值。 int main() { scanf("%d",&t); while(t--) { scanf("%d%d",&e,&f); int d=f-e; scanf("%d",&n); for(int i=0; i<n; i++) scanf("%d%d",&v[i],&w[i]); for(int i=0; i<=d; i++) dp[i]=inf; dp[0]=0; for(int i=0; i<n; i++) { for(int j=w[i]; j<=d; j++) { dp[j]=min(dp[j],dp[j-w[i]]+v[i]); } } if(dp[d]==inf) printf("This is impossible.\n"); else printf("The minimum amount of money in the piggy-bank is %d.\n",dp[d]); } return 0; }