零崎閒下來的時候很喜歡去看書,特別是在沙河的時候,經常和社團的小夥伴一起去自習室看**。教學樓跑的次數多了,自然對路也比較熟,比如教三大教室旁邊的樓梯間裡或者教學樓連通走廊的製圖教室外經常有妹子讀英語什麼的……
說起來教室之間有各種各樣不同的路可以走,不同的路的容納量也不同,那麼這麼多教室這麼多路,如果從一間教室前往另一間教室上課,最多可以有多少人一起走呢?零崎雖然對路和每條路的容量很熟,不過教室這麼多,路太多了怎麼算得清呢?
多組輸入資料。每組資料n+1+t行。
第一行為三個整數,教室數v,路的數量n和查詢數量t。
接下來n行每行三個整數s,t,c為一條教室s到t容量為c的路。
最後t行每行兩個整數x,y為查詢的教室編號。
每組樣例輸出t行,每次查詢一行,為x,y間通路的最大流量。
5 7 2
1 2 10
1 4 2
2 4 6
2 3 6
3 4 3
3 5 8
4 5 5
1 54 2
11
0解題思路:
最大流問題的處理。
**:
1 #include 2using
namespace
std;34
const
int max_v=1010;5
const
int inf=99999999;6
const
double eps = 1e-8;7
8//用於表示邊的結構體(終點、容量、反向邊)
9struct
edge10;
1314 vectorg[max_v];//
圖的鄰接表表示,注意是nmax個陣列
15bool used[max_v]; //
dfs中用到的訪問標記
1617
//向圖中增加一條從s到t容量為cap的邊
18void add_edge(int
from,int to,int
cap)19;
21 edge b =;
22 g[from
].push_back(a);
23g[to].push_back(b);24}
2526
//通過dfs尋找增廣路
27int dfs(int v,int t,int
f)2843}
44}45return0;
46}4748
//求解從s到t的最大流
49int max_flow(int s,int
t)5060}
6162
intmain()
6374
while(t--)
7580}81
return0;
82 }
100 零崎的朋友很多
時間限制 2000 ms 記憶體限制 65536 kb 總通過人數 233 總提交人數 247 零崎有很多朋友,其中有乙個叫做lfj的接盤俠。lfj是乙個手殘,他和零崎一起玩網遊的時候不好好打本,天天看拍賣行,沒過多久,就成為了乙個出色的商人。時間一長,雖然掙了不少錢,卻沒時間練級了。作為lfj的友...
零崎的朋友很多 (矩陣鏈相乘)
零崎有很多朋友,其中有乙個叫jhljx。jhljx大家很熟悉了,他數學不好也是出了名的,大家都懂。現在jhljx遇到了矩陣乘法,他當時就懵了。數都數不清的他,矩陣乘法怎麼可能會算的清楚呢?雖然零崎覺得還不如讓你們來算,不過好歹也要給jhljx個面子,給她留下乙個證明自己數學實力的機會。為了減小jhl...
零崎的人間冒險 (快速排序)
在乾掉了guangtou之後,無聊的零崎又去找事了 說起來零崎前幾周學到了乙個叫做apriori演算法的東西,其第一步是挑出所有出現頻率大於某個給定值的資料。然而作為乙個具有一定程度的強 qi ng 迫 p 症的人,零崎顯然希望先排個序再對其子集進行操作。於是,現在的任務是簡單的公升序排列。多組輸入...