hdu 1114 Piggy-Bank (DP)

点击打开链接

题目意思:完全背包、

1,t组数据

2,给你背包的质量和装上东西后的质量

3,给你一个n,代表有n种货物

4,给你每种货物的价值和重量

求背包所装的做小价值

#include"stdio.h"
int min(int a,int b)
{
	if(a>b) return b;
	return a;
}
int main()
{
	int t,n,a[521],b[521],w,ww,v,i,j,tt;
	int dp[11011];
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d%d",&w,&ww);
		v=ww-w;
		
		scanf("%d",&n);
		for(i=0;i<n;i++)
			scanf("%d%d",&a[i],&b[i]);
		dp[0]=0;
		for(i=1;i<=v;i++)
			dp[i]=9999999;
		
		for(i=0;i<n;i++)
		{
			tt=b[i];
			for(j=tt;j<=v;j++)
				dp[j]=min(dp[j],dp[j-b[i]]+a[i]);
			
		}
		if(dp[v]!=9999999)
			printf("The minimum amount of money in the piggy-bank is %d.\n",dp[v]);
		else
			printf("This is impossible.\n");
	}
	return 0;
}


posted on 2012-10-15 13:07  Slege  阅读(123)  评论(0编辑  收藏  举报

导航