bzoj3875
悲伤地回忆,当初写了一个作死的算法爆零了
为什么不好好写暴力呢……
显然设w[i]表示彻底干掉这个怪物的代价
注意发现这里的转移具有后效性,但是干掉每个怪物的最优值是一定的
我们用spfa来转移,详见那篇spfa的论文
type node=record
po,next:longint;
end; var e,ee:array[..] of node;
p,pp,d:array[..] of longint;
q:array[..] of longint;
w:array[..] of int64;
v:array[..] of boolean;
len,t,i,n,s,j,x:longint; procedure add(x,y:longint);
begin
e[len].po:=y;
e[len].next:=p[x];
p[x]:=len;
end; procedure addp(x,y:longint);
begin
ee[len].po:=y;
ee[len].next:=pp[x];
pp[x]:=len;
end; procedure spfa;
var x,y,f,r,i:longint;
s:int64;
begin
f:=;
r:=n;
for i:= to n do
begin
q[i]:=i;
v[i]:=true;
end;
while f<=r do
begin
x:=q[f];
v[x]:=false;
i:=pp[x];
s:=d[x];
while i<> do //转移
begin
s:=s+w[ee[i].po];
i:=ee[i].next;
if s>=w[x] then break;
end;
if s<w[x] then
begin
w[x]:=s;
i:=p[x];
while i<> do //能用普通攻击变出这个怪物的怪物的最小代价可能发生变化
begin
y:=e[i].po;
if not v[y] then
begin
inc(r);
q[r]:=y;
v[y]:=true;
end;
i:=e[i].next;
end;
end;
inc(f);
end;
end; begin
readln(n);
for i:= to n do
begin
read(d[i],w[i],s);
for j:= to s do
begin
inc(len);
read(x);
addp(i,x);
add(x,i);
end;
readln;
end;
spfa;
writeln(w[]);
end.
bzoj3875的更多相关文章
- BZOJ3875 AHOI2014/JSOI2014骑士游戏(动态规划)
容易想到设f[i]为杀死i号怪物所消耗的最小体力值,由后继节点更新.然而这显然是有后效性的,正常的dp没法做. 虽然spfa已经死了,但确实还是挺有意思的.只需要用spfa来更新dp值就可以了.dij ...
- 【BZOJ3875】[Ahoi2014&Jsoi2014]骑士游戏 SPFA优化DP
[BZOJ3875][Ahoi2014&Jsoi2014]骑士游戏 Description [故事背景] 长期的宅男生活中,JYY又挖掘出了一款RPG游戏.在这个游戏中JYY会扮演一个英勇的 ...
- BZOJ3875: [Ahoi2014&Jsoi2014]骑士游戏
[传送门:BZOJ3875] 简要题意: 给出n种怪物,每种怪物都带有三个值,S[i],K[i],R[i],分别表示对他使用普通攻击的花费,使用魔法攻击的花费,对他使用普通攻击后生成的其他怪物. 每种 ...
- [BZOJ3875][AHOI2014]骑士游戏(松弛操作)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3875 分析: 类似于spfa求最短路,设d[i]表示完全消灭i号怪物的最小花费,我们对 ...
- [bzoj3875] [Ahoi2014]骑士游戏
3875: [Ahoi2014]骑士游戏 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 844 Solved: 440[Submit][Status ...
- 2019.01.22 bzoj3875: [Ahoi2014&Jsoi2014]骑士游戏(spfa+dp)
传送门 题意简述:nnn个怪物,对于编号为iii的怪物可以选择用aia_iai代价将其分裂成另外的bib_ibi个怪物或者用cic_ici代价直接消灭它,现在问消灭编号为1的怪物用的最小代价. ...
- 【BZOJ3875】【AHOI2014】骑士游戏 [Spfa][DP]
骑士游戏 Time Limit: 30 Sec Memory Limit: 256 MB[Submit][Status][Discuss] Description 在这个游戏中,JYY一共有两种攻击 ...
- bzoj3875 【Ahoi2014】骑士游戏 spfa处理后效性动规
骑士游戏 [故事背景] 长期的宅男生活中,JYY又挖掘出了一款RPG游戏.在这个游戏中JYY会 扮演一个英勇的骑士,用他手中的长剑去杀死入侵村庄的怪兽. [问题描述] 在这个游戏中,JYY一共有两种攻 ...
- 【JZOJ3674】【luoguP4042】【BZOJ3875】骑士游戏
description 在这个游戏中,JYY一共有两种攻击方式,一种是普通攻击,一种是法术攻击.两种攻击方式都会消耗JYY一些体力.采用普通攻击进攻怪兽并不能把怪兽彻底杀死,怪兽的尸体可以变出其他一些 ...
随机推荐
- iOS svn版本回退 cornerstone
http://blog.csdn.net/x32sky/article/details/46866899 IOS开发中,SVN如何恢复到某一个版本(以Cornerstone为例) Cornerst ...
- java新手笔记13 继承
1.Person类 package com.yfs.javase; //可以有多个子类 public class Person { private String name;// 私有属性不能继承 pr ...
- 尚学堂马士兵Oracle教程笔记
检查Oracle安装 首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba 然后,解除对scott用户的锁 alter user scott account ...
- 15_AOP入门准备_静态代理模式
[工程截图] [PersonDao.java] package com.HigginCui.daoProxy; public interface PersonDao { public void sav ...
- 九度OJ 1081 递推数列 -- 矩阵二分乘法
题目地址:http://ac.jobdu.com/problem.php?pid=1081 题目描述: 给定a0,a1,以及an=p*a(n-1) + q*a(n-2)中的p,q.这里n >= ...
- 基于HTML5和JSP实现的图片Ajax上传和预览
本文对如何实现使用Ajax提交"multipart/form"格式的表单数据,已经如何在图片上传之前,在浏览器上进行预览.使用的主要相关技术HTML5的FILE API,XMLHt ...
- vsftpd服务详解
一.vsftpd基本使用 VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP,从此名称可以看出来,编制者的初衷是代码的安全.安全性是编写V ...
- Java---Hibernate>>Can't create table './xxx/#sql-b2c_1a.frm' (errno: xxx)解决方法
通用方案:删除相关表,重新生成. 1.关联表之间数据引擎不一致导致: 修改相关表的引擎设定,保持一致. 2.关联表索引字段的引用类型不一样(如A表关联字段是int,B表索引是char): 修改相关表的 ...
- JavaScript原型链demo
function Person(name){ this.name = name; } Person.prototype = { say: function(){ alert('hi'); }, say ...
- SQLServer数据库 导出表和导入sql脚本
1.选择需要导出表的数据库--任务---生成脚本 2.显示:生成和发布脚本窗口--简介(某些可能关闭该页面的,可以省略该步骤),点击下一步 3.显示:生成和发布脚本窗口--选择对象--按照图片操作即可 ...