主题链接:FATE

状态转移方程:

dp[ren][num] =max(dp[ren-耐久值][num-1]+ 经验值,dp[ren][num])

dp表示:当前忍耐度ren下杀敌数为num的经验值

枚举分别枚举 全部怪物种类、耐久度、杀怪数

最后在从小到达枚举消耗的耐久度就可以

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cstdlib>
const int INF = 1e7;
using namespace std;
int dp[105][105],cost[600][2];
int max(int x,int y)
{
if(x > y)
return x;
else
return y;
}
int min(int x,int y)
{
if(x > y)
return y;
else
return x;
}
int main()
{
int n,m,k,s;
while(~scanf("%d%d%d%d",&n,&m,&k,&s))
{
for(int i = 1;i<=k;i++)
{ scanf("%d%d",&cost[i][0],&cost[i][1]); } memset(dp,0,sizeof(dp));
int i,ren,num,ans = -1;
for( i = 1;i<=k;i++)
{
for( ren = cost[i][1];ren<=m;ren++)
{
for( num = 1;num<=s;num++)
{
if(dp[ren][num] < dp[ren-cost[i][1]][num-1]+ cost[i][0])
dp[ren][num] = dp[ren-cost[i][1]][num-1] + cost[i][0];
}
}
}
for(int i = 1;i<=m;i++)
{
if(dp[i][s] >=n)
{
ans = m - i;
printf("%d\n",ans);
break;
}
}
if(ans ==-1)
printf("%d\n",ans);
}
return 0;
}

版权声明:本文博主原创文章,博客,未经同意不得转载。

HDU2159 研发费用背包的更多相关文章

  1. hdu2159二维费用背包

    题目连接 背包九讲----二维费用背包 问题 二维费用的背包问题是指:对于每件物品,具有两种不同的费用:选择这件物品必须同时付出这两种代价:对于每种代价都有一个可付出的最大值(背包容量).问怎样选择物 ...

  2. 洛谷 P1507 NASA的食物计划 【二维费用背包】 || 【DFS】

    题目链接:https://www.luogu.org/problemnew/show/P1507 题目背景 NASA(美国航空航天局)因为航天飞机的隔热瓦等其他安全技术问题一直大伤脑筋,因此在各方压力 ...

  3. Regionals 2014 >> Asia - Taichung 7003 - A Balance Game on Trees 树形DP + 二维费用背包

    https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...

  4. 洛谷 P1509 找啊找啊找GF(复习二维费用背包)

    传送门 题目背景 "找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手,你是我的好GF.再见." "诶,别再见啊..." 七夕...七夕...七夕这个日子,对于sq ...

  5. codevs1959拔河比赛(二维费用背包)

    1959 拔河比赛  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold     题目描述 Description 一个学校举行拔河比赛,所有的人被分成了两组,每个人 ...

  6. 榨取kkksc03 luogu1855 dp 裸二维费用背包

    首先对于这个题目背景,,个人认为很(you)好(qu),,, 核心就是一个裸的二维费用背包,刚刚学习的同学参见dd大牛的背包九讲 #include <cstdio> #include &l ...

  7. hdoj2159【二位费用背包】

    题意: 略: 推荐看一下那个背包九讲,第五讲非常清晰啊. 原文: 算法 费用加了一维,只需状态也加一维即可.设f[i][v][u]表示前i件物品付出两种代价分别为v和u时可获得的最大价值.状态转移方程 ...

  8. HDU-2159 FATE,01背包变形

    FATE 这道题和完全背包十分类似,只不过加上了忍耐度这个条件限制,所以很正常的想到用三维数组来模拟.但背包问题优化只有一层循环,这里当然也可以把种类这一层省略.d[i][j]表示杀i只怪耗费忍耐度为 ...

  9. 洛谷 P1541 乌龟棋 (四维费用背包)

    一开始直接用01背包 后来发现这个物品和位置有关. 也就是价值不是固定的 后来看了题解 看了卡片最多就4 所以这是一个四维费用的背包, 每一维是卡片的数量 价值就是当前的位置的价值. 但是与常规的背包 ...

随机推荐

  1. HDU 1016 Prime Ring Problem 题解

    Problem Description A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ... ...

  2. Cocos2d-x Tiled地图编辑器(一)基本使用

    Tiled地图编辑器支持普通视角地图和45度角地图, 它生成的地图数据文件cocos2d-x完美的支持,Tiled地图编辑器是一个以普通使用为目标地图编辑器,它使用简单而且能够轻松地在不同的游戏引擎中 ...

  3. poj1094Sorting It All Out

    主题链接: 啊哈哈,选我 题目: Sorting It All Out Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 268 ...

  4. iOS开发人员必看的精品资料(100个)

    目录下载地址:http://down.51cto.com/data/416672 附件预览如下: iOS游戏开发之Unity3D引擎系列 http://down.51cto.com/zt/399 iP ...

  5. 【android】在Eclipse在联想引jar包源代码

    (前提是你有jar包源代码!!) .确保Referenced LIbraies下已经有该jar包,否则的话,右击该jar包选build path->add to build path. 二.右键 ...

  6. java HashMap中出现反复的key, 求解释

    上代码: Person p1 = new Person("xiaoer",1); Person p2 = new Person("san",4); Map< ...

  7. hdu 2191 悼念512四川汶川大地震遇难者——如今宝,感恩生活

    悼念512四川汶川大地震遇难者--如今宝,感恩生活 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav ...

  8. HDOJ 2665 Kth number

    静态区间第K小....划分树裸题 Kth number Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  9. MySQL初步研究数据库

    我用的是环境Win7.开始学习PHP和MySQL,而买了这<Head First PHP & MySQL>,从能Head First Labs官网获得HeadFirst系列书籍的相 ...

  10. 关闭 sqlserver提示信息