HDU2159 FATE 二维费用背包-完全背包

/*
二维费用背包-完全背包
费用1是忍耐值,费用2是杀怪数量(不用输入,都是1)
因为每个怪都可以杀无限个,所以是完全背包,调用模板即可
*/
#include "Bag2D.h"
#include 
using namespace std;
 
int main()
{
	int n,m,k,s,i,j;
	while(cin>>n>>m>>k>>s)
	{
		//n:所需的经验值
		V1 = m;//m:保留的忍耐度
		N = k;//k:怪的种类数
		V2 = s;//s:最多杀怪数
		memset(dp, 0, sizeof(dp));
		for(i = 0; i < k; i++)
			cin>>v[i]>>c1[i] ;
		for(i = 0; i < N; i++)
			CompletePack2D(c1[i], 1, v[i]);
		//查找满足value>=n所需要的最小费用1
		for(i = 0; i <= V1; i++)
		{
			for(j = 0; j <= V2; j++)
			{
				if(dp[i][j] >= n)
				{
					cout<

你可能感兴趣的:(ACM解题报告)