bzoj3875 騎士遊戲 最短路

2021-07-10 08:56:35 字數 772 閱讀 6172

以前看到過類似的最短路,就是已知乙個集合(稱為s),在這個集合全部得到後經過t的時間可以得到另乙個集合(稱為t),求從乙個物品得到另外乙個物品的最短時間。不妨先看一下這個類似的問題:

在這個問題中,用bellman-ford,看s能否更新t中的某乙個,直到不能更新就終止。

那麼同樣在這個問題中,首先定義d[i]的初值為法術殺死i的時間,d[i]的終值為殺死i(及其產生的新怪物)的最快時間。那麼如果所有i的前驅(殺死i產生的新怪物)的和

然後就好了。

ac**如下:

#include#include#include#define n 200005

#define m 1000005

#define ll long long

using namespace std;

int n,tot,fst[n],pnt[m],nxt[m],h[m+5]; bool bo[n];

ll a[n],d[n],sum[n];

int read()

return x;

}void add(int x,int y)

int main()

} int head=0,tail=n;

for (i=1; i<=n; i++)

while (head!=tail)

}} }

printf("%lld\n",d[1]);

return 0;

}

by lych

2016.3.8

bzoj 3875 Ahoi2014 騎士遊戲

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

bzoj3875 Ahoi2014 騎士遊戲

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

3875 Ahoi2014 騎士遊戲

題目鏈結 題目大意 給定n個怪物,每個怪物可以用魔法直接乾掉,或者用物理攻擊使其 為一些其他怪物,求殺掉1號怪物的最小花銷題解 f i 表示殺 死i號怪 物的最小 花銷,則 f i min k i s i f j 其中j 為i用物 理攻擊後 可以 為的怪物 但是直接dp有後效性,因此我們用spfa來...