bzoj1927 Sdoi2010 星際競速

2022-03-18 11:43:10 字數 1262 閱讀 8463

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 顆行星之間沒有任何航路的天體出發,訪問...