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