Description

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

Input

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

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

首先用消耗 44 点体力用普通攻击,然后出现的怪兽编号是 22 , 22 和 33 。花费 1010 点体力用法术攻击杀死两个编号为 22 的怪兽。剩下 33 号怪兽花费 11 点体力进行普通攻击。此时村庄里的怪兽编号是 22 和 44 。最后花费 1111 点体力用法术攻击将这两只怪兽彻底杀死。一共花费的体力是 4+5+5+1+5+6=264+5+5+1+5+6=26 。

2≤N≤2×105,1<=Ri,∑Ri≤106,1≤Ki,Si≤5×10142\le N\le 2\times 10^5,1

Solution

用 spfaspfa 来进行 dpdp 。其中

  • d[i]d[i] 表示清除 ii 以及后面的所有怪兽的最小费用。
  • d[1]d[1] 为答案。

直接 dpdp 的话有后效性,所以用 spfaspfa 来 dpdp ,建一个反图来更新前驱。

#include<bits/stdc++.h>
using namespace std;#define N 200001
#define rep(i, a, b) for (int i = a; i <= b; i++)
#define fech(i, x) for (int i = 0; i < x.size(); i++)
#define ll long longinline ll read() {ll x = 0, flag = 1; char ch = getchar(); while (!isdigit(ch)) { if (!(ch ^ '-')) flag = -1; ch = getchar(); }while (isdigit(ch)) x = (x << 1) + (x << 3) + ch - '0', ch = getchar(); return x * flag;
}int n;
ll s[N], d[N];
vector<int> g[N], r[N];queue<int> q; bool inq[N];
void spfa() {rep(i, 1, n) q.push(i), inq[i] = 1;while(!q.empty()) {int u = q.front(); ll t = s[u]; q.pop(), inq[u] = 0;fech(i, g[u]) t += d[g[u][i]];if(t < d[u]) { d[u] = t; int v; fech(i, r[u]) if(!inq[(v = r[u][i])]) q.push(v), inq[v] = 1; }}cout << d[1];
}int main() {n = read();rep(i, 1, n) {s[i] = read(), d[i] = read(); int T = read();while(T--) { int t = read(); g[i].push_back(t), r[t].push_back(i); }}spfa(); return 0;
}

bzoj3875 [Ahoi2014Jsoi2014]骑士游戏相关推荐

  1. bzoj3875: [Ahoi2014Jsoi2014]骑士游戏 spfa处理有后效性动规

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

  2. bzoj3875: [Ahoi2014Jsoi2014]骑士游戏(spfa+dp)

    传送门 题意简述: n n n个怪物,对于编号为 i i i的怪物可以选择用 a i a_i ai​代价将其分裂成另外的 b i b_i bi​个怪物或者用 c i c_i ci​代价直接消灭它,现在 ...

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

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

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

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

  5. 【bzoj3875】[Ahoi2014Jsoi2014]骑士游戏

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

  6. [Ahoi2014Jsoi2014]骑士游戏(SPFA)

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

  7. BZOJ3875: [Ahoi2014]骑士游戏

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

  8. Bzoj3875 [Ahoi2014]骑士游戏

    Time Limit: 30 Sec  Memory Limit: 256 MB Submit: 749  Solved: 392 Description [故事背景] 长期的宅男生活中,JYY又挖掘 ...

  9. bzoj 3875: [Ahoi2014Jsoi2014]骑士游戏【dp+spfa】

    设f[i]为杀死i的最小代价,显然\( f[i]=min(k[i],s[i]+\sum f[to]) \) 但是这个东西有后效性,所以我们使用spfa来做,具体就是每更新一个f[i],就把能被它更新的 ...

最新文章

  1. “元宇宙”数字化理解
  2. python怎么写文件-python头文件怎么写
  3. 【2016.12.04】JavaScript笔记
  4. sql server解析xml属性为表格_[Mybatis][基础支持层]mapper xml sql 解析
  5. 计算机二级考试Access教程
  6. Linux输入子系统浅析
  7. Java基础笔记-String类
  8. html range样式修改,自定义(滑动条)input[type=range]样式
  9. 为什么二维码扫码支付为什么不需要输支付密码,而条形码支付需要输入支付密码?
  10. python画三维投影图_python之画三维图像
  11. 阿里云企业版云服务器使用流程
  12. 《Linux那些事儿之我是USB》我是U盘(15)冬天来了,春天还会远吗?(一)
  13. datagridview更新到数据库视频教程地址
  14. 4G EPS 中的 Bearer
  15. linux brother打印机驱动安装
  16. 上海最牛逼的75家互联网公司
  17. 【Visual C++】游戏开发笔记三十四 浅墨DirectX提高班之三 起承转合的艺术 Direct3D渲染五步曲
  18. 论文笔记(三十):Counter-Hypothetical Particle Filters for Single Object Pose Tracking
  19. Java小记-Vue/ElementUI/Axios(超级无敌认真好用,万字收藏篇!!!!)
  20. TR-FS00会计科目创建GL_ACCT_MASTER_SAVE

热门文章

  1. 2021-2027全球与中国汽车CMOS图像传感器市场现状及未来发展趋势
  2. php windows 信号,win10连接投影仪无信号怎么办
  3. Android Notification详解【郭霖公众号推荐】
  4. Cesium中的相机—HeadingPitchRoll
  5. MARA常规物料数据
  6. 注册表计算机性能设置怎么应用,教你几招怎么玩注册表
  7. 8寸ndows平板,三款8英寸Windows平板对比体验
  8. c/c++排坑(3) -- c/c++中的switch语句
  9. 中北大学计算机研究生学院,【计算机考研】院校信息-中北大学
  10. created at mysql类型_MySQL created_at 日期时间字段在数据变更时,自动更新