3875 Ahoi2014 騎士遊戲

2021-08-07 01:49:51 字數 923 閱讀 4387

題目鏈結

題目大意:給定n個怪物,每個怪物可以用魔法直接乾掉,或者用物理攻擊使其**為一些其他怪物,求殺掉1號怪物的最小花銷題解

:f[i

]表示殺

死i號怪

物的最小

花銷,則

f[i]

=min

(k[i

],s[

i]+σ

f[j]

)其中j

為i用物

理攻擊後

可以**

為的怪物

但是直接dp有後效性,因此我們用spfa來跑這個dp即可

每更新乙個點a的動規值,就會有若干個點的動規值可能被更新,即可以**出點a的那些點。於是a出隊後一旦動規值被更新了,就把那些點入隊。

初始時要把所有點入隊

我不知道這個怎麼保證複雜度,十分玄學

我的收穫:spfa處理有後效性dp

#include 

#include

#include

#include

#include

#include

using

namespace

std;

const

int m=200005;

bool vis[m];

int n,t,r,x,head[m];

long

long f[m],s[m],k[m];

vector

pre[m];

queue

q;struct edgee[m*5];

void add(int u,int v)

void spfa()

}void work()

void init()

}int main()

bzoj 3875 Ahoi2014 騎士遊戲

故事背景 長期的宅男生活中,jyy又挖掘出了一款rpg遊戲。在這個遊戲中jyy會 扮演乙個英勇的騎士,用他手中的長劍去殺死入侵村莊的怪獸。問題描述 在這個遊戲中,jyy一共有兩種攻擊方式,一種是普通攻擊,一種是法術攻 擊。兩種攻擊方式都會消耗jyy一些體力。採用普通攻擊進攻怪獸並不能把怪獸徹底殺死,...

bzoj3875 Ahoi2014 騎士遊戲

易水人去,明月如霜。故事背景 長期的宅男生活中,jyy又挖掘出了一款rpg遊戲。在這個遊戲中jyy會 扮演乙個英勇的騎士,用他手中的長劍去殺死入侵村莊的怪獸。問題描述 在這個遊戲中,jyy一共有兩種攻擊方式,一種是普通攻擊,一種是法術攻 擊。兩種攻擊方式都會消耗jyy一些體力。採用普通攻擊進攻怪獸並...

AHOI2014 騎士遊戲

故事背景 長期的宅男生活中,jyy又挖掘出了一款rpg遊戲。在這個遊戲中jyy會 扮演乙個英勇的騎士,用他手中的長劍去殺死入侵村莊的怪獸。問題描述 在這個遊戲中,jyy一共有兩種攻擊方式,一種是普通攻擊,一種是法術攻 擊。兩種攻擊方式都會消耗jyy一些體力。採用普通攻擊進攻怪獸並不能把怪獸徹底殺死,...