description
假期,hrbust集訓隊在tang長老的帶領下去河上坐船遊玩。 但是很多隊員想單獨坐船遊覽風光,體驗乙個人的旅行。 但是教主說那樣會很危險,而且似乎也沒那麼多的旅行路線。可是隊員們還是堅持自己的想法,於是教主提了個要求:如果遊覽的路線足夠一人一條,而且每條路線沒有重複的水路的話,就同意大家的做法,不然,tang長老就請大家集體吃冰棍,一起坐船去。
集訓隊這次一共去了 d 個人,(1<=d<=200),已知河道上一共n個河叉(2<=n<=200),大家都是從1號位置開始旅行的,終點為第 n 號位置,現在已知道在這n個位置之間有 m 條連通的水路(2<=m<=40000)。
請幫大家計算下存在的路線數是否夠大家單人旅行的。
input
line 1: 河叉總數 n,道路總數 m,集訓隊人數 d。
line 2…m+1:兩個整數 a,b,表示位置 a 和 b 之間有一條直接連通的水路。
output
line1:如果存在的路徑數夠大家單人旅行(路徑數》= d),輸出「orz!」,否則輸出「jiao zhu v5!」。
sample input
2 2 1
1 21 2
7 9 5
1 22 3
3 71 4
4 34 5
5 71 6
6 7sample output
orz!
jiao zhu v5!
hint
注意是邊是雙向的。
第一組樣例:
從 1 到 2 有兩條沒有重複道路的路徑。
第二組樣例:
從 1 到 7 有三條符合條件的路徑:
1 - 2 - 3 - 7
1 - 4 - 5 -7
1 - 6 - 7
最大流模板題,重邊數量為乙個節點到另乙個節點的容量,直接求1到n的最大流量即可。建圖時遇到一條重邊就計數,最後每條邊有多少條重邊即可以走幾個不同路線。也就是可走容量
#include
using
namespace
std;
const
int maxn=208;
const
int inf=0x3f3f3f3f;
struct edge
edge(int a,int b,int c)
};int dep[maxn];
int n,m,d;
vector
mp[maxn];
void add(int from,int to,int val)
int bfs()}}
return0;}
int dfs(int s,int t,int flow)
}return pre;
}int dinic()
mapvis;
int main()
map::iterator it;
for(it=vis.begin(); it!=vis.end(); it++)
add(it->first/300,it->first%300,it->second);
printf("%s\n",dinic()>=d?"orz!":"jiao zhu v5!");}}
最大流dinic模板
運輸問題1 輸入檔案 maxflowa.in 輸出檔案 maxflowa.out 簡單對比 時間限制 1 s 記憶體限制 128 mb 問題描述 乙個工廠每天生產若干商品,需運輸到銷售部門進行銷售。從產地到銷地要經過某些城鎮,有不同的路線可以行走,每條兩城鎮間的公路都有一定的流量限制。請你計算,在不...
最大流 Dinic模板
date 2015 8 21 晚上 author itak motto 今日的我要超越昨日的我,明日的我要勝過今日的我 以創作出更好的 為目標,不斷地超越自己。include include using namespace std oo表示無窮大 const int oo 1e9 5 mm表示邊的最...
最大流模板(Dinic)
和最小費用流模板對比著看 最小費用流模板 貼上最大流模板 include includeusing namespace std const int oo 1e9 oo 表示無窮大 const int mm 111111111 mm 表示邊的最大數量,記住要是原圖的兩倍,在加邊的時候都是雙向的 con...