bzoj1927 星際競速

2022-06-07 19:27:10 字數 768 閱讀 1194

考慮沒有爆發,那麼相當於是帶權最小不可交路徑覆蓋,由於只能從編號小的到編號大的,因此一定是dag,而dag的最小路徑覆蓋可以拆點並跑最大流,那麼帶權的只需要跑費用流即可(s向i連(1,0)的邊,i』向t連(1,0)的邊,i向j』連(1,t)的邊,其中i->j有時間為t的邊)。

考慮爆發操作,相當於讓任意兩點之間都能夠新增一條邊,但這樣跑邊數太多,可以直接從s連向i』(1,ai)的邊(ai表示i爆發的代價)即可。

1 #include2

using

namespace

std;

3#define n 2005

4struct

jiedge[n*20

];7 queueq;

8int e,n,m,t,x,y,head[n],d[n],vis[n],from

[n];

9void add(int x,int y,int z,int

w)17

bool

spfa()35}

36}37}

38return d[t]<0x3f3f3f3f;39

}40intdinic()48}

49return

ans;50}

51int

main()

60for(int i=1;i<=m;i++)

65 t=2*n+1

;66 printf("%d"

,dinic());

67 }

view code

BZOJ1927星際競速

1927 sdoi2010 星際競速 time limit 20 sec memory limit 259 mb submit 1727 solved 1053 description 10 年一度的銀河系賽車大賽又要開始了。作為全銀河最盛大的活動之一,奪得這個專案的冠軍無疑是很多人的夢想,來自傑森...

bzoj 1927 星際競速(拆點費用流)

題目鏈結 好嘛,現在我要正式用某神犇的部落格上的題的順序開始刷題了。這道題將每個能力爆發模式的費用,即單點費用拆成兩個點,再加邊。要加入乙個源點和匯點。本蒟蒻只會寫有點耗時的spfa版,若有那個神犇會zkw費用流,請教一下 include include include includeusing n...

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...