现在的位置: 首页 > 综合 > 正文

hdu1114

2014年02月24日 ⁄ 综合 ⁄ 共 600字 ⁄ 字号 评论关闭
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<queue>
#include<algorithm>
#include<map>
#include<iomanip>
#define INF 99999999
using namespace std;

const int MAX=10000;
int dp[MAX];//重量为i能够的到的最少硬币价值 
int s[501][2];

int main(){
	int a,sum,n,t;
	cin>>t;
	while(t--){
	    cin>>a>>sum;
		sum-=a;
		cin>>n;
		for(int i=1;i<=sum;++i)dp[i]=INF;
		for(int i=0;i<n;++i)cin>>s[i][0]>>s[i][1];
		for(int i=0;i<n;++i){
			for(int j=s[i][1];j<=sum;++j){
				dp[j]=min(dp[j],dp[j-s[i][1]]+s[i][0]);
			}
		}
		if(dp[sum] == INF)cout<<"This is impossible."<<endl;
		else cout<<"The minimum amount of money in the piggy-bank is "<<dp[sum]<<".\n";
	}
	return 0;
}

抱歉!评论已关闭.