HDU2159 研发费用背包
主题链接: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 研发费用背包的更多相关文章
- hdu2159二维费用背包
题目连接 背包九讲----二维费用背包 问题 二维费用的背包问题是指:对于每件物品,具有两种不同的费用:选择这件物品必须同时付出这两种代价:对于每种代价都有一个可付出的最大值(背包容量).问怎样选择物 ...
- 洛谷 P1507 NASA的食物计划 【二维费用背包】 || 【DFS】
题目链接:https://www.luogu.org/problemnew/show/P1507 题目背景 NASA(美国航空航天局)因为航天飞机的隔热瓦等其他安全技术问题一直大伤脑筋,因此在各方压力 ...
- 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 ...
- 洛谷 P1509 找啊找啊找GF(复习二维费用背包)
传送门 题目背景 "找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手,你是我的好GF.再见." "诶,别再见啊..." 七夕...七夕...七夕这个日子,对于sq ...
- codevs1959拔河比赛(二维费用背包)
1959 拔河比赛 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 一个学校举行拔河比赛,所有的人被分成了两组,每个人 ...
- 榨取kkksc03 luogu1855 dp 裸二维费用背包
首先对于这个题目背景,,个人认为很(you)好(qu),,, 核心就是一个裸的二维费用背包,刚刚学习的同学参见dd大牛的背包九讲 #include <cstdio> #include &l ...
- hdoj2159【二位费用背包】
题意: 略: 推荐看一下那个背包九讲,第五讲非常清晰啊. 原文: 算法 费用加了一维,只需状态也加一维即可.设f[i][v][u]表示前i件物品付出两种代价分别为v和u时可获得的最大价值.状态转移方程 ...
- HDU-2159 FATE,01背包变形
FATE 这道题和完全背包十分类似,只不过加上了忍耐度这个条件限制,所以很正常的想到用三维数组来模拟.但背包问题优化只有一层循环,这里当然也可以把种类这一层省略.d[i][j]表示杀i只怪耗费忍耐度为 ...
- 洛谷 P1541 乌龟棋 (四维费用背包)
一开始直接用01背包 后来发现这个物品和位置有关. 也就是价值不是固定的 后来看了题解 看了卡片最多就4 所以这是一个四维费用的背包, 每一维是卡片的数量 价值就是当前的位置的价值. 但是与常规的背包 ...
随机推荐
- iOS7 文本转语音 AVSpeechSynthesizer
OS7 的这个功能确实不错.我刚试了下,用官方提供的API ,简单的几句代码就能实现文本转语音! Xcode 5.0 工程建好后首先把AVFoundation.framework 加入到工程 AVSp ...
- ecshop后台权限增加
1.在后台“推荐管理”里添加“推荐人分成”.“会员分成”两个操作功能以及权限 index.php?act=menu incluedes/inc_priv.php:权限对照表.inc_m ...
- POJ 1205 Water Treatment Plants(递推)
题意 建设一条河岸的污水处理系统 河岸有n个城市 每一个城市都能够自己处理污水 V 也能够把污水传到相邻的城市处理 >或< 除了你传给我我也传给你这样的情况 其他都是 ...
- hdu4670(树上点分治+状态压缩)
树上路径的f(u,v)=路径上所有点的乘积. 树上每个点的权值都是由给定的k个素数组合而成的,如果f(u,v)是立方数,那么就说明f(u,v)是可行的方案. 问有多少种可行的方案. f(u,v)可是用 ...
- Python入门(转)
Python 简洁的语法和对动态输入的支持,再加上解释性语言的本质, 使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发 特点:简单.易学.免费.开源.高层语言.可移植 ...
- Android Wear
数据类型和接口的发送和同步数据概述
Android Wear数据层API,这是google play service部分,通信信道,以你的手持设备和耐磨应用. Api它包含一系列数据对象,可以让系统通过监控和通知行app重要的事件数据层 ...
- BestCoder Round#11div2 1003
----- 有时候如果枚举起点超时,那么试试枚举终点. 枚举每一个i为终点(0<= i < n),且维护起点下标startPos 对于终点i,cnt[str[i]] ++, 如果小于等 ...
- 杭州电 3711 Binary Number
Binary Number Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) To ...
- MyBatis+Spring+Spring MVC整合开发
MyBatis+Spring+Spring MVC整合开发课程观看地址:http://www.xuetuwuyou.com/course/65课程出自学途无忧网:http://www.xuetuwuy ...
- SSH三作品的框架和流程
Hibernate工作的,为什么? 原理: 1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件 2.由hibernate.cfg.xm ...