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

题解

设f[i]表示彻底杀死怪兽i所需的最小体力
那么f[i]=min(k[i],sigma(f[j])+s[i]),j表示i生成的怪兽
转移比较麻烦,换种思想
可以发现这是一个带环的图,那么最后肯定是要用一发法术攻击结尾的。
那么spfa优化

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
using namespace std;
typedef long long LL;
queue<int> Q;
vector<int>P[210000];
struct node
{int x,y,next;
}a[1110000];int len,last[210000];
void ins(int x,int y)
{len++;a[len].x=x;a[len].y=y;a[len].next=last[x];last[x]=len;
}
int n;
LL f[210000];//杀死怪兽
LL ss[210000],kk[210000],rr[210000];
bool v[210000];
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%lld%lld%lld",&ss[i],&kk[i],&rr[i]);f[i]=kk[i];Q.push(i);for(int j=1;j<=rr[i];j++){LL x;scanf("%lld",&x);P[i].push_back(x);ins(x,i);}}memset(v,true,sizeof(v));while(!Q.empty()){int x=Q.front();LL d=ss[x];for(int i=0;i<P[x].size();i++)d+=f[P[x][i]];if(d<f[x]){f[x]=d;for(int k=last[x];k;k=a[k].next){int y=a[k].y;if(v[y]==false){v[y]=true;Q.push(y);}}}Q.pop();v[x]=false;}printf("%lld\n",f[1]);return 0;
}

[bzoj3875][DP][最短路]骑士游戏相关推荐

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

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

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

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

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

    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. BZOJ 3875 Ahoi2014 骑士游戏

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

  6. 3875: [Ahoi2014]骑士游戏

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

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

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

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

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

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

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

最新文章

  1. 程序员离职带走源码竟获利800万,网友:我一般都是删库跑路
  2. python 报错 cannot import name ‘byte_string‘ from ‘Crypto.Util.py3compat‘ 解决方法
  3. 树与二叉树的深度优先与广度优先算法(递归与非递归)
  4. 数列分段pascal程序
  5. 第八模块:算法设计模式、企业应用 第2章 企业应用工具学习
  6. call/apply以及this指向的理解
  7. 【转】语义化版本 2.0.0
  8. TCP客户端服务器(Python)
  9. js if判断多个条件_五、if 条件判断
  10. python从tushare获取数据_python调用tushare获取股票月线数据
  11. java 龟兔赛跑预测_[Java] 蓝桥杯BASIC-24 基础练习 龟兔赛跑预测
  12. 计算机文化基础在线作业答案,地大《计算机文化基础》在线作业一答案.doc
  13. Vegas轻松get制作动态背景技能
  14. Lingo基本使用方法
  15. 夯实Java基础系列10:深入理解Java中的异常体系
  16. 如何用csdn上传资源
  17. 更换系统的jdk版本
  18. “阳”后第1 2 3 4 5 6 7天的症状详解
  19. 信息在计算机中用几进制表示,2017计算机等级考试知识点:数据在计算机中的表示...
  20. yolov5 tensorrt 精度对齐总结

热门文章

  1. C++读取局域网内其他计算机共享文件夹的文件
  2. BCD码-8421码、5421码、2421码、余3码
  3. 女朋友的情绪难以捉摸,作为程序员我应该?
  4. mysql高德地图设计_基于高德开放平台Map Lab的数据可视化
  5. java绘图技术,演示绘制不同的图形
  6. c#使用Aspose实现Word域套打
  7. 带你彻底搞懂MyBatis的底层实现之缓存模块(Cache)-吊打面试官必备技能
  8. 《途客圈创业记:不疯魔,不成活》导读
  9. 通信原理包络是什么意思_什么是PFC稳压开关电源?
  10. 基于51单片机的废气检测I2Cproteus仿真