hdu1248寒冰王座

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

完全揹包


#include <stdio.h>   
#include <iostream> 
#include <algorithm>
#include <cstring>
using namespace std;   
int f[100005],n,i,m,j;
int max(int a,int b)
{
	if(a>b)return a;
	else return b;
}


int main()
{
	int w[3]={150,200,350},v[3]={150,200,350};
	cin>>n;
	while(n--)
	{
		memset(f,0,sizeof(f));
		cin>>m;
		for(i=0;i<3;i++)
		{
			for(j=1;j<=m;j++)
			{
				if(j>=w[i])
				f[j]=max(f[j],f[j-w[i]]+v[i]);
			}
		}
		cout<<m-f[m]<<endl;
	}
	return 0;
}






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章