Description

【故事背景】
长期的宅男生活中,JYY又挖掘出了一款RPG游戏。在这个游戏中JYY会扮演一个英勇的骑士,用他手中的长剑去杀死入侵村庄的怪兽。
【问题描述】
在这个游戏中,JYY一共有两种攻击方式,一种是普通攻击,一种是法术攻击。两种攻击方式都会消耗JYY一些体力。采用普通攻击进攻怪兽并不能把怪兽彻底杀死,怪兽的尸体可以变出其他一些新的怪兽,注意一个怪兽可能经过若干次普通攻击后变回一个或更多同样的怪兽;而采用法术攻击则可以彻底将一个怪兽杀死。当然了,一般来说,相比普通攻击,法术攻击会消耗更多的体力值(但由于游戏系统bug,并不保证这一点)。
游戏世界中一共有N种不同的怪兽,分别由1到N编号,现在1号怪兽入侵村庄了,JYY想知道,最少花费多少体力值才能将所有村庄中的怪兽全部杀死呢?

Input

第一行包含一个整数N。
接下来N行,每行描述一个怪兽的信息;
其中第i行包含若干个整数,前三个整数为Si,Ki和Ri,表示对于i号怪兽,
普通攻击需要消耗Si的体力,法术攻击需要消耗Ki的体力,同时i号怪兽死亡后会产生Ri个新的怪兽。表示一个新出现的怪兽编号。同一编号的怪兽可以出现多个。

Output

输出一行一个整数,表示最少需要的体力值。

Sample Input

4
4 27 3 2 3 2
3 5 1 2
1 13 2 4 2
5 6 1 2

Sample Output

26

HINT

【样例说明】
首先用消耗4点体力用普通攻击,然后出现的怪兽编号是2,2和3。花费10点体力用法术攻击杀死两个编号为2的怪兽。剩下3号怪兽花费1点体力进行普通攻击。此时村庄里的怪兽编号是2和4。最后花费11点体力用法术攻击将这两只怪兽彻底杀死。一共花费的体力是4+5+5+1+5+6=26。
【数据范围】
2<=N<=2*10^5,1<=Ri,Sigma(Ri)<=10^6,1<=Ki,Si<=5*10^14
题解:
提取题目的重要信息:对于一种怪兽,想要消灭它必须要进行二选一的攻击。一种攻击是将其变成新的若干种怪兽(仍在原来的1~n种之中),另一种是直接将其消灭。两种不同攻击花费的代价不相等,求消灭所有怪兽最小代价。
既然要在两种攻击中二选一,我们必定要选对答案贡献最小的(攻击后要花费的代价最小的),那么f[i]表示第i种怪兽被消灭所需要花费的最小代价。
————————(以下只是对于题意的另类理解,思维非常严谨的同学可以不看)——————
其实我们可以感性理解,对于一个怪兽来说,法术攻击就是一种代价为ki的死法,普通攻击就是是这个怪兽另一种代价为(Si+其他代价)的死法。
所以我们不考虑那么多什么新怪兽的东西,因为你产生的新怪兽必须在原本的下一个怪兽前,全都消灭。
———————————————————————————————————————————
转移方程:f[i]=min(ki,si+每个新怪兽的最小代价);
但我们仔细思考,其实现在攻击的怪兽既然是可能需要后边的怪兽来更新的,但是我们还没有处理出来后边的怪兽,也就是说前后怪兽是会互相影响的。
这时候就需要用spfa来处理转移了。
p.s:一开始写这个的时候,虽然知道新怪兽和当前怪兽会互相影响……就瞎写了一个模拟转移,当然连样例都过不了……
后来想到前两天写华容道那题,是结合了最短路来更新,于是强行写一波……好过样例了不管了……

转载于:https://www.cnblogs.com/Beckinsale/p/7617850.html

bzoj3785--骑士游戏--有“环”的动态规划相关推荐

  1. 【ECNU OJ 3373】 骑士游戏 最短路径+动态规划

    Problem 3373 骑士游戏 长期的宅男生活中,JYY 又挖掘出了一款 RPG 游戏.在这个游戏中 JYY 会扮演一个英勇的骑士,用他手中的长剑去杀死入侵村庄的怪兽. 在这个游戏中,JYY 一共 ...

  2. 3875: [Ahoi2014]骑士游戏

    3875: [Ahoi2014]骑士游戏 Time Limit: 30 Sec  Memory Limit: 256 MB Submit: 599  Solved: 319 [Submit][Stat ...

  3. 新千题计划 2#:[AHOI JSOI14] 骑士游戏

    骑士游戏[难度:NOIP D2T1]有 nn<script type="math/tex" id="MathJax-Element-3">n< ...

  4. BZOJ 3875 Ahoi2014 骑士游戏

    3875: [Ahoi2014]骑士游戏 Time Limit: 30 Sec  Memory Limit: 256 MB Description [故事背景] 长期的宅男生活中,JYY又挖掘出了一款 ...

  5. 题解 洛谷 P4042 [AHOI2014/JSOI2014]骑士游戏

    洛谷P4042[AHOI2014/JSOI2014]骑士游戏\color{#00F}{洛谷\ P4042\ [AHOI2014/JSOI2014]骑士游戏}洛谷 P4042 [AHOI2014/JSO ...

  6. 【BZOJ3875】[Ahoi2014Jsoi2014]骑士游戏 SPFA优化DP

    [BZOJ3875][Ahoi2014&Jsoi2014]骑士游戏 Description [故事背景] 长期的宅男生活中,JYY又挖掘出了一款RPG游戏.在这个游戏中JYY会扮演一个英勇的骑 ...

  7. BZOJ 3875: [Ahoi2014Jsoi2014]骑士游戏 dp spfa

    3875: [Ahoi2014&Jsoi2014]骑士游戏 Time Limit: 30 Sec  Memory Limit: 256 MB Submit: 933  Solved: 475 ...

  8. [AHOI2014/JSOI2014]骑士游戏 深入理解spfa

    [AHOI2014/JSOI2014]骑士游戏 杀死魔物有两种方式 魔法或者物理攻击再让它去世 则 dis = min(魔法 , 物理+所有子代魔法); 就像dp,然而可能成环.考虑spfa成环距离必 ...

  9. bzoj3875 【Ahoi2014】骑士游戏 spfa处理后效性动规

    骑士游戏 [故事背景] 长期的宅男生活中,JYY又挖掘出了一款RPG游戏.在这个游戏中JYY会 扮演一个英勇的骑士,用他手中的长剑去杀死入侵村庄的怪兽. [问题描述] 在这个游戏中,JYY一共有两种攻 ...

最新文章

  1. ​每日一皮:​入职新公司第一周的感受...
  2. python 使用文本注解绘制树节点_整理了 34 个被吹爆了的Python开源框架
  3. Vue+Openlayers实现绘制线段并测量距离显示
  4. python替代_【Python】选择ipython替代python的理由
  5. android webview 数字键盘,android – 在WebView中显示数字键盘
  6. 这些排序算法的使用时机,你都知道吗?
  7. JUnit 5 –下一代JUnit的初步了解
  8. 设为首页 加入收藏 html,[javascript]js设为首页和加入收藏夹代码
  9. 极客大学架构师训练营 毕业典礼 奉献优秀架构师升级攻略
  10. Spring官网下载最新jar包
  11. 电脑在登陆界面如何打开计算机管理,无线路由器管理界面如何登录 无法进入管理界面怎么办...
  12. VMware Workstation for Windows 历史版本
  13. 树形结构的数据库表Schema设计
  14. 01百思不得其姐基本配置
  15. 工作中,掌握这四个说话技巧,再也不用担心自己不会说话
  16. python-给登记照换底色(蓝底变红底)
  17. firefox插件推荐
  18. java List复制:浅拷贝与深拷贝
  19. win10计算机休眠后无法唤醒,win10电脑休眠后唤不醒怎么回事_win10电脑休眠后唤不醒的三种原因和解决方法...
  20. android高级编程新浪,《C高级编程(第4版)》-完整教材教程

热门文章

  1. Environment.SpecialFolder的值的含义(本地打印)
  2. lio-sam框架:点云匹配之手写高斯牛顿下降优化求状态量更新
  3. mysql count(*)使用索引和成本计算
  4. 一个普通程序员的生存之道
  5. 常用的大数据技术有哪些?
  6. Hybrid A*路径规划器的代码注释
  7. 怎样提高学生计算机应用能力,如何提高中职学生计算机应用能力
  8. createjs初学-关于Ticker
  9. CSS学习记录3.2/设置标签的背景颜色/控制背景图片的平铺方式/控制背景图片的位置/背景图片关联方式/背景图片和插入图片的区别/捕鱼达人背景练习/精灵图
  10. 微软为Windows8平板所配备的键鼠套装