#include<bits/stdc++.h>
using namespace std;
//const int INF=0x3f3f3f3f;
#define INF 0x3f3f3f3f
#define MXM 10010
#define MXN 100010
int v[MXM],w[MXM],dp[MXN];
int main(){
int t,a,b,ans,n;
cin>>t;
while(t--){
memset(v,0,sizeof(v));
memset(w,0,sizeof(w));
cin>>a>>b;ans = b-a;
cin>>n;
for(int i=0;i<n;i++){
cin>>v[i]>>w[i];
}
memset(dp,INF,sizeof(dp));//初始化数组无穷大
dp[0]=0;//但是第一个一定要为0,如果不为零,那么数组中所有的数都会是无穷大的。
for(int i=0;i<n;i++){
for(int j=w[i];j<=ans;j++){
dp[j]=min(dp[j],dp[j-w[i]]+v[i]);
}
}
if(dp[ans]!=INF){
printf("The minimum amount of money in the piggy-bank is %d.\n",dp[ans]);
}
else{
cout<<"This is impossible."<<endl;
}
}
}
hdu 1114 Piggy-Bank
最新推荐文章于 2021-08-13 03:48:46 发布