bzoj 1927 Sdoi2010 星際競速

2021-08-14 07:43:41 字數 1743 閱讀 9757

10年一度的銀河系賽車大賽又要開始了。作為全銀河最盛大的活動之一,奪得這個專案的冠軍無疑是很多人的

夢想,來自傑森座α星的悠悠也是其中之一。賽車大賽的賽場由n顆行星和m條雙向星際航路構成,其中每顆行星都

有乙個不同的引力值。大賽要求車手們從一顆與這n顆行星之間沒有任何航路的天體出發,訪問這n顆行星每顆恰好

一次,首先完成這一目標的人獲得勝利。由於賽制非常開放,很多人駕駛著千奇百怪的自製賽車來參賽。這次悠悠

駕駛的賽車名為超能電驢,這是一部凝聚了全銀河最尖端科技結晶的夢幻賽車。作為最高科技的產物,超能電驢有

兩種移動模式:高速航行模式和能力爆發模式。在高速航行模式下,超能電驢會展開反物質引擎,以數倍於光速的

速度沿星際航路高速航行。在能力爆發模式下,超能電驢脫離時空的束縛,使用超能力進行空間跳躍——在經過一

段時間的定位之後,它能瞬間移動到任意乙個行星。天不遂人願,在比賽的前一天,超能電驢在一場離子風暴中不

幸受損,機能出現了一些障礙:在使用高速航行模式的時候,只能由每個星球飛往引力比它大的星球,否則賽車就

會發生**。儘管心愛的賽車出了問題,但是悠悠仍然堅信自己可以取得勝利。他找到了全銀河最聰明的賢者——

你,請你為他安排一條比賽的方案,使得他能夠用最少的時間完成比賽。

之前雲裡霧裡a了這題,做了營救皮卡丘後突然想起這題,趕緊回爐一發。

這題難就難在每個點的下限為一,強的人直接上下界費用流,然而本蒟蒻只能慢慢理解了。

對於每個點拆點,乙個是出點,乙個入點。然後源點向出點連邊,入點向匯點連邊,這樣就可以強制下限了。

其它邊都是出點連向入點。

code:

#include

#include

#include

#include

using

namespace

std;

const

int inf=1

<<29;

intmap[810][810],n,m,a[810];

struct nodea[2110000];int len=0,last[2100];

int s[10005],p[10005],q[10005],st,ed;

bool u[10005];

inline

int read()

while(ch>='0'&&ch<='9')

return x*f;

}void ins(int x,int y,int c,int d)

bool spfa()}}

u[x]=false;

l++;if(l>ed+1) l=1;

}return s[ed]<999999999;

}int flow()

x=ed;

while(x!=st)

return ans;

}int main()

st=0;ed=2*n+1;

for(int i=1;i<=n;i++) ins(st,i,1,a[i]),ins(i,ed,1,0),ins(st,i+n,1,0);

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

for(int j=i+1;j<=n;j++) if(map[i][j]!=inf) ins(i+n,j,1,map[i][j]);

int ans=0;

while(spfa()) ans+=flow();

printf("%d",ans);

}

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