BOZJ 1927 Sdoi2010 星際競速

2022-03-18 06:24:25 字數 968 閱讀 5564

題鏈:

題解:

顯然是個dag

建圖和有向圖最小路徑覆蓋的建圖有些相似。

都是拆點為 u u'分別表示出點和入點。

也都要保證每個點最多有乙個出度和乙個入度。

但因為帶權,要求最小花費,切要滿足每個點都去一次,既要滿足流量,所以採用最小費用最大流。

s -> u :(1,0) 因為每個點都會到達,所以都可以有乙個出度(可以從改點流出乙個流量)。

s -> u':(1,a[u]) 傳送到達 u點,提供乙個入度方式

u -> v':(1,w) u的出度對應 v的入度

u'-> t :(1,0) 流向匯點,表示改點到達過。

**:

#include#include#include#include#define maxn 2000

#define maxm 50000

#define inf 0x3f3f3f3f3f3f3f3f

#define ll long long

using namespace std;

struct edge

void adde(ll u,ll v,ll w,ll c)

ll next(ll i,bool type)

}e;bool vis[maxn];

ll cur[maxn],dis[maxn];

ll n,m,s,t;

ll idx(ll i,ll k)

bool spfa()

} return dis[s]v) swap(u,v);

e.adde(idx(u,0),idx(v,1),1,w);//u的出度對應 v的入度。

} for(ll i=1;i<=n;i++)

ll cost=dinic();

printf("%lld",cost);

return 0;

}

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