简单的背包
#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<set> #include<vector> #include<map> #include<algorithm> #include<cmath> #include<stdlib.h> using namespace std; #define inf 10000000 int main() { int t,e,f,p,w,num,i,j; int pe[10010]; cin>>t; while(t--) { cin>>e>>f>>num; int need=f-e; for(i=1;i<=need;i++) pe[i]=inf; pe[0]=0; for(i=1;i<=num;i++){ scanf("%d%d",&p,&w); for(j=w;j<=need;j++) pe[j]=min(pe[j],pe[j-w]+p); } if(pe[need]!=inf) cout<<"The minimum amount of money in the piggy-bank is "<<pe[need]<<"."<<endl; else cout<<"This is impossible."<<endl; } }