题目背景
现在乐斗有活动了!每打一个人可以获得 5 倍经验!absi2011 却无奈的看着那一些比他等级高的好友,想着能否把他们干掉。干掉能拿不少经验的。

题目描述
现在 absi2011 拿出了 x 个迷你装药物(嗑药打人可耻…),准备开始与那些人打了。

由于迷你装药物每个只能用一次,所以 absi2011 要谨慎的使用这些药。悲剧的是,用药量没达到最少打败该人所需的属性药药量,则打这个人必输。例如他用 2 个药去打别人,别人却表明 3 个药才能打过,那么相当于你输了并且这两个属性药浪费了。

现在有 n 个好友,给定失败时可获得的经验、胜利时可获得的经验,打败他至少需要的药量。

要求求出最大经验 s,输出 5s。

输入格式
第一行两个数,n 和 x。

后面 n 行每行三个数,分别表示失败时获得的经验 losei,胜利时获得的经验wini,和打过要至少使用的药数量 usei 。

输出格式
一个整数,最多获得的经验的五倍。

输入输出样例
输入 #1复制
6 8
21 52 1
21 70 5
21 48 2
14 38 3
14 36 1
14 36 2
输出 #1复制
1060
说明/提示
【Hint】

五倍经验活动的时候,absi2011 总是吃体力药水而不是这种属性药。

【数据范围】

对于 10% 的数据,保证 x=0。
对于 30% 的数据,保证 0≤n≤10,0≤x≤20。
对于 60% 的数据,保证 0≤n,x≤100, 10<losei,wini≤100,0≤usei≤103.
【题目来源】

fight.pet.qq.com

absi2011 授权题目

和01背包一样的思路,只是多了个lose的值,不选这一项也加上lose值。

头文件,定义变量和数组

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n, x;
ll lose[1200], win[1200],use[11000];
ll dp[1200][12000];

输入:

cin >> n >> x;
for(int i=1;i<=n;i++)cin >> lose[i] >> win[i] >> use[i];

循环dp数组:

for(int i=1;i<=n;i++)
{for(int j=x;j>=0;j--){if(j>=use[i])dp[i][j] = max(dp[i-1][j]+lose[i],dp[i-1][j-use[i]]+win[i]);elsedp[i][j] = dp[i-1][j]+lose[i];}
}

最后输出即可,注意5倍:

cout << dp[n][x]*5;

完整代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n, x;
ll lose[1200], win[1200],use[11000];
ll dp[1200][12000];
int main()
{cin >> n >> x;for(int i=1;i<=n;i++)cin >> lose[i] >> win[i] >> use[i];for(int i=1;i<=n;i++){for(int j=x;j>=0;j--){if(j>=use[i])dp[i][j] = max(dp[i-1][j]+lose[i],dp[i-1][j-use[i]]+win[i]);elsedp[i][j] = dp[i-1][j]+lose[i];}}cout << dp[n][x]*5;return 0;
}

洛谷OJ P1802 5倍经验日 动态规划相关推荐

  1. P1802 5 倍经验日(python3实现)

    5 倍经验日 - 洛谷 """P1802 5 倍经验日(python3实现) https://www.luogu.com.cn/problem/P1802"&q ...

  2. P1802 5 倍经验日

    5倍经验日 每次可以选择损失0药水获得lose经验(贪心),或者砸药水获得成功经验 #include<bits/stdc++.h>using namespace std;int n,x; ...

  3. 【每日DP】day1 P1802 5倍经验日(别样的01背包)难度⭐★

    题目链接 输入 6 8 21 52 1 21 70 5 21 48 2 14 38 3 14 36 1 14 36 2 输出 1060 一道有点意思的01背包,可以帮助理解.好久没写DP了,每天一道D ...

  4. #洛谷oj:P1525 [NOIP2010 提高组] 关押罪犯

    洛谷oj:P1525 [NOIP2010 提高组] 关押罪犯 #题目描述 #一看很明显是贪心算法 加排序 因为 这个中间最大值的那一对肯定是不会在一起的 从大到小来看 所有点对都尽量不要在一个监狱 # ...

  5. 洛谷oj题单【入门2】分支结构-入门难度(Java)

    洛谷oj题单[入门2]分支结构-入门难度(Java) 来源:https://www.luogu.com.cn/training/101#problems P5709 [深基2.习6]Apples Pr ...

  6. 洛谷OJ 入门与面试 B2001-B2148 题解

    洛谷OJ 入门与面试 B2001-B2148 链接:https://pan.baidu.com/s/1cMRv6SBjL_sehYj7oM8gkw 提取码:tel3 B2001 入门测试题目 #inc ...

  7. 洛谷P2904 [USACO08MAR]跨河River Crossing 动态规划

    洛谷P2904 [USACO08MAR]跨河River Crossing 动态规划 区间DP f[ i ] 表示 将 i 头牛 运了过去,然后John 又返回所需要的最少时间 1 #include & ...

  8. 洛谷OJ上的A+B花(zhuang)式(bi)解法

    转眼间快到了8月,一想自己都毕业好久了,很怀念曾经在各大OJ上刷题的时光,今天无意在一个算法群里看到最近有个叫洛谷的oj网站貌似蛮火的,于是注册了一个下进去看一看,顺手打开了A+B problem,然 ...

  9. 【洛谷OJ C++】洛谷题单100 入门1顺序结构 题解及学习笔记

    洛谷平台题单100链接:https://www.luogu.com.cn/training/100#problems 目录 学习笔记: P1001 A+B Problem P1000 超级玛丽游戏 P ...

  10. 洛谷大起义胜利的经验总结

    UPD1(2019.7.11):chen_zhe解除了对我的禁言,但仍保持大脑皮层对刷题重心转到LibreOJ的决策,50年不变. 2019-07-09 9:54 结束黑暗无光的\(luogu\)统治 ...

最新文章

  1. careercup-链表 2.2
  2. 分享:SringBuffer与String的区别
  3. 云计算设计模式(十六)——优先级队列模式
  4. TestFlight
  5. quantaxis中使用docker安装,出现的问题
  6. 计算机开始菜单运行程序在哪里,请问谁知道电脑开始菜单里运行的指令大全?...
  7. 没用过这几招,别说你会使用Jupyter Notebook
  8. C程序设计--查找(二分法查找/折半查找)
  9. Xilinx_Vivado_2019.1下载和安装教程
  10. python分割文本_python分割文本
  11. arduino win8 驱动安装
  12. jquery 实现抽奖小程序
  13. canvas 擦除动画_HTML5 实现橡皮擦的擦除效果
  14. fis3 前端项目构建,一步步来
  15. 【云原生】在 React Native 中使用 AWS Textract 实现文本提取
  16. macos 切换用户_如何在macOS上使用TouchID即时切换用户
  17. MFC combo, radio控件使用
  18. 递归与递归方程T(N)=aT(N/b)+O(N^d)
  19. Python异常处理:ImportError: cannot import name 'XXX' from 'XXXX'
  20. 数通运营商方向常见面试问题(第五部分)

热门文章

  1. 全网最详细的VMware虚拟机下载安装教程
  2. 针式PKM V5.78
  3. 一些自用的编程工具推荐
  4. linux快速迁移超大文件,Linux下快速迁移海量文件的操作记录
  5. 剖析Linux内核源码分析《入门技术栈》
  6. 微信公众号分销商城(源码+数据库+文档)
  7. graphviz安装
  8. python pywinauto 自动控制微信, 关键字回复、收款、定时任务, 代替人工成为微信客服
  9. 安装软件提示计算机管理员权限,安装需要管理员权限怎么办 设置安装软件需要管理员权限的方法教程...
  10. java虚拟机有什么作用_java虚拟机有什么用