SDOI2010 bzoj1927 星際競速

2021-07-16 10:24:15 字數 2119 閱讀 3570

描述:

10 年一度的銀河系賽車大賽又要開始了。作為全銀河最盛大的活動之一,奪得這個專案的冠軍無疑是很多人的夢想,來自傑森座 α星的悠悠也是其中之一。

賽車大賽的賽場由 n 顆行星和m條雙向星際航路構成,其中每顆行星都有乙個不同的引力值。大賽要求車手們從一顆與這 n 顆行星之間沒有任何航路的天體出發,訪問這 n 顆行星每顆恰好一次,首先完成這一目標的人獲得勝利。

由於賽制非常開放,很多人駕駛著千奇百怪的自製賽車來參賽。這次悠悠駕駛的賽車名為超能電驢,這是一部凝聚了全銀河最尖端科技結晶的夢幻賽車。作為最高科技的產物,超能電驢有兩種移動模式:高速航行模式和能力爆發模式。在高速航行模式下,超能電驢會展開反物質引擎,以數倍於光速的速度沿星際航路高速航行。在能力爆發模式下,超能電驢脫離時空的束縛,使用超能力進行空間跳躍——在經過一段時間的定位之後,它能瞬間移動到任意乙個行星。

天不遂人願,在比賽的前一天,超能電驢在一場離子風暴中不幸受損,機能出現了一些障礙:在使用高速航行模式的時候,只能由每個星球飛往引力比它大的星球,否則賽車就會發生**。

儘管心愛的賽車出了問題,但是悠悠仍然堅信自己可以取得勝利。他找到了全銀河最聰明的賢者——你,請你為他安排一條比賽的方案,使得他能夠用最少的時間完成比賽。

輸入:

第一行是兩個正整數 n, m。

第二行 n 個數 a1~an, 其中ai表示使用能力爆發模式到達行星 i 所需的定位時間。

接下來 m行,每行 3個正整數ui, vi, wi,表示在編號為 ui和vi的行星之間存在一條需要航行wi時間的星際航路。

輸入資料已經按引力值排序,也就是編號小的行星引力值一定小,且不會有兩顆行星引力值相同。

輸出:

僅包含乙個正整數,表示完成比賽所需的最少時間。

樣例輸入:

3 3

1 100 100

2 1 10

1 3 1

2 3 1

樣例輸出:

12資料範圍:

對於 30%的資料 n≤20,m≤50;

對於 70%的資料 n≤200,m≤4000;

對於100%的資料n≤800, m≤15000。輸入資料中的任何數都不會超過10^6。

輸入資料保證任意兩顆行星之間至多存在一條航道,且不會存在某顆行星到

自己的航道。

題解:

費用流經典拆點模型:將每個星球拆成左右兩個點

1.從原點向每個左點連一條費用為0,容量為1的邊

2.從原點向每個右點連一條費用為 直接飛躍到該星球所用的定位時間 ,容量為1的邊

3.從每個右點向匯點連一條費用為0,容量為1的邊

4.對於每乙個輸入的u,v,w (設u < v) , 連一條從u的左點到v的右點的費用為w,容量為1的邊

接著用普通的費用流求解。。

#include

#include

#include

#include

#include

#include

#define liangjiajun main

#define inf 1999122700

#define s 0

#define t 2*800+1

using

namespace

std;

int n,m,a[2604],from[2604];

int ne=1,h[2604],dis[2604];

struct edgee[150004];

void add(int u,int v,int w,int c)

void insert(int u,int v,int w,int c)

int k=0;

queue

q;bool inq[1604];

bool spfa()}}

inq[x]=0;

}return (dis[t]!=inf);

}int ans=0;

void mcf()

}int liangjiajun()

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

while(spfa())mcf();

printf("%d\n",ans);

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 顆行星之間沒有任何...

bzoj1927 Sdoi2010 星際競速

傳送門 description 10年一度的銀河系賽車大賽又要開始了。作為全銀河最盛大的活動之一,奪得這個專案的冠軍無疑是很多人的夢想,來自傑森座 星的悠悠也是其中之一。賽車大賽的賽場由n顆行星和m條雙向星際航路構成,其中每顆行星都有乙個不同的引力值。大賽要求車手們從一顆與這n顆行星之間沒有任何航路...