bzoj2502 清理雪道 最小流

2021-08-03 10:23:47 字數 1485 閱讀 4337

time limit: 10 sec  

memory limit: 128 mb [

submit][

status][

discuss]

滑雪場坐落在

fj省西北部的若干座山上。

從空中鳥瞰,滑雪場可以看作乙個有向無環圖,每條弧代表乙個斜坡(即雪道),弧的方向代表斜坡下降的方向。

你的團隊負責每週定時清理雪道。你們擁有一架直公升飛機,每次飛行可以從總部帶乙個人降落到滑雪場的某個地點,然後再飛回總部。從降落的地點出發,這個人可以順著斜坡向下滑行,並清理他所經過的雪道。

由於每次飛行的耗費是固定的,為了最小化耗費,你想知道如何用最少的飛行次數才能完成清理雪道的任務。

輸入檔案的第一行包含乙個整數

n (2 <= n

<= 100) – 

代表滑雪場的地點的數量。接下來的

n 行,描述

1~n 號地點出發的斜坡,第

i 行的第乙個數為

mi(0 <= mi

< n) 

,後面共有

mi個整數,由空格隔開,每個整數

aij互不相同,代表從地點

i 下降到地點

aij的斜坡。每個地點至少有乙個斜坡與之相連。

輸出檔案的第一行是乙個整數

k – 

直公升飛機的最少飛行次數。

81 31 7

2 4 5

1 81 8

02 6 504

就加了個讀優,就排了個第二名,玄學啊**

辣雞的我還想二分,結果這是最小流啊!二分個**啊!

#include#include#include#define inf 100000000

using namespace std;

const int n = 115;

int n,s,t,ss,tt,si[n],last[n],cur[n],cnt=1,h[n],ans;

struct edgee[2000005];

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

bool bfs()

} return false;

}int dfs( int x, int f )

if( !used ) h[x] = -1;

return used;

}void rebuild()

insert(s,tt,inf); insert(ss,t,inf);

}int main()

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

insert(tt,ss,inf);

while(bfs()) dfs(s,inf);

rebuild();

while(bfs()) ans -= dfs(s,inf);

printf("%d", ans);

return 0;

}

bzoj 2502 清理雪道 最小流

time limit 10 sec memory limit 128 mb submit 868 solved 466 submit status discuss 滑雪場坐落在fj省西北部的若干座山上。從空中鳥瞰,滑雪場可以看作乙個有向無環圖,每條弧代表乙個斜坡 即雪道 弧的方向代表斜坡下降的方向。...

bzoj 2502 清理雪道

time limit 10 sec memory limit 128 mb submit 510 solved 276 submit status discuss 滑雪場坐落在 fj省西北部的若干座山上。從空中鳥瞰,滑雪場可以看作乙個有向無環圖,每條弧代表乙個斜坡 即雪道 弧的方向代表斜坡下降的方向...

上下界網路流 bzoj2502 清理雪道

模型 無源匯有上下界可行流ljn 模板題吧 滑雪場坐落在fj省西北部的若干座山上。從空中鳥瞰,滑雪場可以看作乙個有向無環圖,每條弧代表乙個斜坡 即雪道 弧的方向代表斜坡下降的方向。你的團隊負責每週定時清理雪道。你們擁有一架直公升飛機,每次飛行可以從總部帶乙個人降落到滑雪場的某個地點,然後再飛回總部。...