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;
}

posted on 2011-05-04 20:22  宇宙吾心  阅读(286)  评论(0)    收藏  举报

导航