bzoj1927[sdoi2010]星際競速
題意:賽車大賽的賽場由n顆行星和m條雙向星際航路構成,其中每顆行星都有乙個不同的引力值。大賽要求車手們從一顆與這n顆行星之間沒有任何航路的天體出發,訪問這n顆行星每顆恰好一次。賽車超能電驢在高速航行模式下,沿星際航路航行,但只能由每個星球飛往引力比它大的星球。在能力爆發模式下,超能電驢在經過一段時間的定位之後,能瞬間移動到任意乙個行星。求完成比賽最短時間。n≤800,m≤15000
題解:費用流。對每個點拆成x,y兩個點,源向每個y點連邊,流量為1,費用為對這個行星的定位時間,表示直接經過這個行星。源再向每個x點連邊流量1,費用0,每個y點向匯連邊,流量1,費用0。x與y之間按「星際航路」連邊,表示從x點到y點。我們不關心從**到這個行星再到**去,我們只考慮每個行星只能經過一次。反思:本智障一開始看不懂任何題解,後來發現自己以為是能力爆發模式需要受引力限制,不審題退役qaq
**:
1 #include 2 #include 3 #include 4 #include 5#define inc(i,j,k) for(int i=j;i<=k;i++)
6#define maxn 2000
7#define inf 0x3fffffff
8using
namespace
std;910
struct e; e es[maxn*40]; int
ess,g[maxn];
11 inline void pe(int f,int t,int c,int
w); g[f]=ess; es[++ess]=(e); g[t]=ess;13}
14void init()
15int d[maxn],fr[maxn]; bool inq[maxn]; queue q;
16bool spfa(int s,int
t)24}25
return d[t]!=-1;26
}27int advanced(int s,int
t)33
int maxflowmincost(int s,int
t)36
intn,m,s,t;
37int
main()
40 inc(i,1,m)
41 inc(i,1,n)pe(s,i,1,0),pe(i+n,t,1,0
);42 printf("
%d",maxflowmincost(s,t)); return0;
43 }
20160527
bzoj1927 Sdoi2010 星際競速
傳送門 思路 拆點拆成x和x s向x 連邊,容量為1,費用為定位時間 s向x連邊,容量為1,費用為0 對於原圖的邊u v u向v 連邊,容量為1,費用為時間 x 向t連邊,容量為1,費用為0 跑一遍費用流即可 include include include includeconst int maxn...
bzoj1927 Sdoi2010 星際競速
description 10 年一度的銀河系賽車大賽又要開始了。作為全銀河最盛大的活動之一,奪得這個專案的冠軍無疑是很多人的夢想,來自傑森座 星的悠悠也是其中之一。賽車大賽的賽場由 n 顆行星和m條雙向星際航路構成,其中每顆行星都有 乙個不同的引力值。大賽要求車手們從一顆與這 n 顆行星之間沒有任何...
SDOI2010 bzoj1927 星際競速
描述 10 年一度的銀河系賽車大賽又要開始了。作為全銀河最盛大的活動之一,奪得這個專案的冠軍無疑是很多人的夢想,來自傑森座 星的悠悠也是其中之一。賽車大賽的賽場由 n 顆行星和m條雙向星際航路構成,其中每顆行星都有乙個不同的引力值。大賽要求車手們從一顆與這 n 顆行星之間沒有任何航路的天體出發,訪問...