P1802 5倍经验日
P1802 5倍经验日
题目背景
现在乐斗有活动了!每打一个人可以获得5倍经验!absi2011却无奈的看着那一些比他等级高的好友,想着能否把他们干掉。干掉能拿不少经验的。
题目描述
现在absi2011拿出了x个迷你装药物(嗑药打人可耻….),准备开始与那些人打了
由于迷你装一个只能管一次,所以absi2011要谨慎的使用这些药,悲剧的是,没到达最少打败该人所用的属性药了他打人必输>.<所以他用2个药去打别人,别人却表明3个药才能打过,那么相当于你输了并且这两个属性药浪费了。
现在有n个好友,有输掉拿的经验、赢了拿的经验、要嗑几个药才能打过。求出最大经验(注意,最后要乘以5)
输入输出格式
输入格式:
第一行两个数,n和x
后面n行每行三个数,分别表示输了拿到的经验(lose[i])、赢了拿到的经验(win[i])、打过要至少使用的药数量(use[i])。
输出格式:
一个整数,最多获得的经验
输入输出样例
说明
【Hint】
五倍经验活动的时候,absi2011总是吃体力药水而不是这种属性药>.<
【数据范围】
对于10%的数据,保证x=0
对于30%的数据,保证n<=10,x<=20
对于60%的数据,保证n<=100,x<=100, 10<=lose[i], win[i]<=100,use[i]<=5
对于100%的数据,保证n<=1000,x<=1000,0<lose[i]<=win[i]<=1000000,0<=use[i]<=1000
【题目来源】
fight.pet.qq.com
absi2011授权题目
洛谷题解:
面对每个对手时有两种决策:
1.dp[j]=dp[j]+per[i].lose (j<per[i].use) 嗑j瓶药都打不过不如不嗑药
2.dp[j]=max(dp[j]+per[i].lose,dp[j-per[i].use]+per[i].win) (j>=per[i].use) 此时有两种决策
坑点:
1.讨论区有人说不开long long会炸,我也没试
2.输出时别忘记乘5
下面放代码:
#include<iostream>
using namespace std;
#define MAXN 1000+5//大小视题目而定
struct Node
{
int lose;
int win;
int use;
}per[MAXN];
int n,x;
long long dp[MAXN];//开long long
//一堆定义,自己仔细读题
int main()
{
cin>>n>>x;
for(int i=;i<=n;i++)
cin>>per[i].lose>>per[i].win>>per[i].use;//很正常的输入
for(int i=;i<=n;i++)
for(int j=x;j>=;j--)//01背包倒着写
dp[j]=j<per[i].use?dp[j]+per[i].lose:max(dp[j]+per[i].lose,dp[j-per[i].use]+per[i].win);//原谅我懒得写大括号和一堆if,else,写了这么一个又臭又长的式子
cout<<dp[x]*;//记得乘5
return ;
}
P1802 5倍经验日的更多相关文章
- 【动态规划】洛谷P1802 5 倍经验日(01背包问题)
一个洛谷普及-的题目,也是我刚刚入门学习动态规划的练习题. 下面发一下我的思路和代码题解: 我的思路及伪代码: 我的AC图: 接下来上代码: 1 //动态规划 洛谷P1802 五倍经验日 2 #inc ...
- P1802 5倍经验日(01背包问题,水题)
题目背景 现在乐斗有活动了!每打一个人可以获得5倍经验!absi2011却无奈的看着那一些比他等级高的好友,想着能否把他们干掉.干掉能拿不少经验的. 题目描述 现在absi2011拿出了x个迷你装药物 ...
- luogu P1802 5倍经验日
题目背景 现在乐斗有活动了!每打一个人可以获得5倍经验!absi2011却无奈的看着那一些比他等级高的好友,想着能否把他们干掉.干掉能拿不少经验的. 题目描述 现在absi2011拿出了x个迷你装药物 ...
- 洛谷 P1802 5倍经验日
题目背景 现在乐斗有活动了!每打一个人可以获得5倍经验!absi2011却无奈的看着那一些比他等级高的好友,想着能否把他们干掉.干掉能拿不少经验的. 题目描述 现在absi2011拿出了x个迷你装药物 ...
- 洛谷——P1802 5倍经验日
https://www.luogu.org/problem/show?pid=1802#sub 题目背景 现在乐斗有活动了!每打一个人可以获得5倍经验!absi2011却无奈的看着那一些比他等级高的好 ...
- Luogu P1802 5倍经验日_KEY
题目传送门 ·背包 这可以说是一道背包的变形. 首先需要考虑到的是如何将ta转换为一个正常 的背包. 这些数据有一个让我们都十分不爽的地方就是有两个值. 所以我们就设置一个基准值,将失败的经验值当做基 ...
- DFS——>记忆化搜索——>动态规划
以洛谷P1802 5倍经验日 为例 https://www.luogu.org/problem/show?pid=1802 题目背景 现在乐斗有活动了!每打一个人可以获得5倍经验!absi2011却 ...
- DP百题练(一)
目录 DP百题练(一) 线性 DP 简述 Arithmetic Progressions [ZJOI2006]物流运输 LG1095 守望者的逃离 LG1103 书本整理 CH5102 移动服务 LG ...
- Money 20/20 | 未来金融数字化转型:数字化半径与全栈式战略观
小蚂蚁说: 近年来,国际和国内的领先银行纷纷全力投入数字化转型.IDC去年报告说,全球1000大企业里面,67%已经把数字化转型定为企业级战略,而决定数字化转型成功与否的是人的思想改变.我们用数字化半 ...
随机推荐
- 关于ps前端工程师简单配置
1.创建Web网页设计稿的预设参数 1920*1080 72 透明 2.定位组或定位图层 可以在ps选项栏中,勾选“自动选择”+组/图层 或者 ctrl键+组/图层: 3.视图 ...
- Fatal error: Call to a member function on a non-object 的2种解决办法
这两天被一个莫名其妙的错误:Fatal error: Call to a member function on a non-object in d://www/htdocs/inc.php 77 搞 ...
- java中文件下载的思路(参考:孤傲苍狼)
文件下载 文件下载功能是web开发中经常使用到的功能,使用HttpServletResponse对象就可以实现文件的下载 文件下载功能的实现思路: 1.获取要下载的文件的绝对路径 2.获取要下载的文件 ...
- 屏幕尺寸,分辨率,PPI,像素之间的关系
什么是屏幕尺寸? 华为荣耀7的尺寸是5.2英寸.这个5.2英寸是手机屏幕对角线的长度. 1英寸(inch)=2.54厘米(cm) 什么是分辨率? 华为荣耀7的分辨率是1920PX*1080PX.像素是 ...
- 数据结构和算法设计专题之---二分查找(Java版)
1.前提:二分查找的前提是需要查找的数组必须是已排序的,我们这里的实现默认为升序 2.原理:将数组分为三部分,依次是中值(所谓的中值就是数组中间位置的那个值)前,中值,中值后:将要查找的值和数组的中值 ...
- HBase自定义MapReduce
HBase表数据的转移 在Hadoop阶段,我们编写的MR任务分别进程了Mapper和Reducer两个类,而在HBase中我们需要继承的是TableMapper和TableReducer两个类. 目 ...
- appium 定位弹出框时报错
今天在做APP自动化时,发现定位弹出框无法定位,无奈,百度去找.发现了一篇不错的博客,故转载过来,供大家参考.后续会验证这个方法的可行性. 本博客转自:http://blog.csdn.net/qq7 ...
- ASP.NET Core学习——3
中间件 中间件是用于组成应用程序管道来处理请求和相应的组件.管道内的每一个组件都可以选择是否将请求交给下一个组件,并在管道中调用下一个组件之前和之后执行某些操作.请求委托被用来建立请求管道,请求委托处 ...
- 动态队列实现-----C语言
/***************************************************** Author:Simon_Kly Version:0.1 Date: 20170520 D ...
- Dubbo入门到精通学习笔记(十六):Keepalived+Nginx实现高可用Web负载均衡
文章目录 Keepalived+Nginx实现高可用Web负载均衡 Keepalived+Nginx实现高可用Web负载均衡 高可用架构篇 Keepalived + Nginx 实现高可用 Web 负 ...