poj 1384
完全背包。
代码:
#include<iostream>
#include<fstream>
using namespace std;
int dp[10001];
int e,f;
int p[501],w[501];
int n;
void read(){
// ifstream cin("in.txt");
int i,j,k;
int cas;
cin>>cas;
while(cas--){
cin>>e>>f;
cin>>n;
for(i=1;i<=n;i++)
cin>>p[i]>>w[i];
for(j=0;j<=f;j++)
dp[j]=5000001;
dp[e]=0;
for(i=1;i<=n;i++)
for(j=w[i]+e;j<=f;j++)
{
dp[j]=min(dp[j],dp[j-w[i]]+p[i]);
}
if(dp[f]==5000001)
cout<<"This is impossible."<<endl;
else
cout<<"The minimum amount of money in the piggy-bank is "<<dp[f]<<'.'<<endl;
}
}
int main(){
read();
return 0;
}
浙公网安备 33010602011771号