题目传送门

题目大意: 有 n n n 种怪物,有两种攻击,物理攻击攻击完后,一个怪物会分裂成 R i R_i Ri​ 个给定的怪物(即便分裂出 0 0 0 个该怪物也视为未死亡),魔法攻击攻击完后,该怪物会死亡,对于每种怪物,魔法攻击和物理攻击代价不同,现在问消灭一只第一种怪物的最小代价是?

题解

跟这题差不多。

相当于每个怪物可以由若干个其他怪物组成。跑最短路时,当组成一个怪物的所有怪物都被松弛过后,再去用这个组成关系更新这个怪物的最小代价。

代码如下:

#include <cstdio>
#include <cstring>
#include <queue>
#include <algorithm>
using namespace std;
#define maxn 400010
#define ll long longint n,a[maxn];
struct edge{int y,next;}e[maxn*3];
int first[maxn],len=0;
void buildroad(int x,int y){e[++len]=(edge){y,first[x]};first[x]=len;}
ll c[maxn],dis[maxn];
struct node{int x;ll d;node(int xx,ll dd):x(xx),d(dd){}bool operator <(const node &b)const{return d>b.d;}
};
priority_queue<node>q;
void dij()
{while(!q.empty()){node X=q.top();q.pop();int x=X.x;if(X.d!=dis[x])continue;for(int i=first[x];i;i=e[i].next){int y=e[i].y;a[y]--;dis[y]+=dis[x];if(!a[y]&&dis[y]+c[y-n]<dis[y-n])dis[y-n]=dis[y]+c[y-n],q.push(node(y-n,dis[y-n]));}}
}int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%lld %lld %d",&c[i],&dis[i],&a[i+n]);q.push(node(i,dis[i]));for(int j=1,x;j<=a[i+n];j++)scanf("%d",&x),buildroad(x,i+n);}dij();printf("%lld",dis[1]);
}

AHOI/JSOI 2014 骑士游戏 题解相关推荐

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

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

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

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

  3. BZOJ 3875 Ahoi2014 骑士游戏

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

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

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

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

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

  6. 阿狸和桃子的游戏题解

    阿狸和桃子的游戏题解 每一道代码简单的黑题都有着诡异的思想,真不知道出题者怎么想的. 而这道题的重点在于把边权转换为点权, 此题的方式是将边权w平均分给被连接的两点u和v. 若u和v都被一人选择,则他 ...

  7. 洛谷P1129 [ZJOI2007] 矩阵游戏 题解

    洛谷P1129 [ZJOI2007] 矩阵游戏 题解 题目链接:P1129 [ZJOI2007] 矩阵游戏 题意:给定一张有黑白棋子的正方形棋盘,问存不存在解法使得经过若干次交换行或列的操作后,左上角 ...

  8. P1199(NOIP2010 普及组)三国游戏 题解

    P1199(NOIP2010 普及组)三国游戏题解 Step-1 输入(重点) 输入n:int n;cin>>n; 输入数组: int a[1001][1001]; for(int i=1 ...

  9. 3875: [Ahoi2014]骑士游戏

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

最新文章

  1. 2019年六大新兴信息安全方向
  2. 什么是.Net, IL, CLI, BCL, FCL, CTS, CLS, CLR, JIT
  3. 中断和异常,陷阱的区别和联系
  4. Cannot maintain customer-spec. event handler registration in SAP system
  5. 【听歌】GDB入门教程之查看函数调用堆栈
  6. 核心API最佳实践——JDK日志分级
  7. SAP License:如何做好ERP系统验收测试
  8. 如何用计算机管理员权限,计算机管理员权限在哪里设置_电脑系统如何设置管理员权限-win7之家...
  9. ROS☞rosbag/rostopic消息记录、回放、转.txt
  10. R语言机器学习:xgboost的使用及其模型解释
  11. 产品需求文档(PRD,Product Requirement Document)模板
  12. Basic开发笔记:Basic语言介绍、环境搭建、基本语法示例与程序实例
  13. java pdf转png格式_如何在Java中将PDF转换为PNG或JPG
  14. Python xlwt 操作 excel 表格基础(三):单元格格式、字体格式、对齐方式、边框及填充等
  15. 台式计算机蓝牙在哪,台式电脑蓝牙在哪里打开(台式电脑连接蓝牙教程分享)...
  16. 【转】Android屏幕适配全攻略(最权威的官方适配指导)
  17. Apache BookKeeper
  18. 一行代码搞定Android弧形卫星动画菜单(附Demo)
  19. 微型计算机在机械设计中的应用,自动化技术在机械设计制造中的应用初探
  20. 新手坐高铁怎么找车厢_高铁怎么找车厢,问工作人员/根据候车站台地标颜色找...

热门文章

  1. 大数据存储系统学习笔记(一)
  2. Android开发真等于废人?再不刷题就晚了!
  3. python setup用法_python之setup.py快速了解和使用
  4. 【vue案例】vue实现tab选项卡
  5. 腾讯:只许我抄天下人,不许天下人抄我!
  6. SSM基于上述环境实现简单CUDA操作
  7. Win10安装Go语言以及环境变量的配置
  8. 2021年危险化学品生产单位安全生产管理人员考试报名及危险化学品生产单位安全生产管理人员作业考试题库
  9. r语言svr模型_R建立SVR模型,并用遗传算法优化
  10. 计算机速度GHz等于每秒多少次