HDU 1248 寒冰王座 完全背包

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1248

中文题,大意就不说了。

第一道完全背包题,跟着背包九讲做的。

和0-1背包的区别在于所不同的是每种物品有无限件。


#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAXN=10000+10;
int dp[MAXN];
int c[3]={  150 , 200 , 350};
int main()
{
	int kase;
	scanf("%d",&kase);
	while(kase--)
	{
		int n;
		scanf("%d",&n);
		memset(dp,0,sizeof(dp));

		for(int i=0;i<3;i++)
		{
			for(int j=c[i];j<=n;j++)
				dp[j]= max (dp[j], dp[j- c[i] ]+c[i]);
		}

		printf("%d\n",n-dp[n]);
	}
}


posted @ 2013-11-09 23:14  hr_whisper  阅读(176)  评论(0编辑  收藏  举报