以前看到過類似的最短路,就是已知乙個集合(稱為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來...