n(2<=n<=200)個城市,m(1<=m<=40000)條無向邊,你要找t(1<=t<=200)條從城市1到城市n的路,使得最長的邊的長度最小,邊不能重複用。
輸入格式:
第1行三個整數n,m,t用空格隔開。
第2行到p+1行,每行包括三個整數ai,bi,li表示城市ai到城市bi之間有一條長度為li的道路。
輸出格式:
輸出只有一行,包含乙個整數,即經過的這些道路中最長的路的最小長度。
輸入樣例#1:
7 9 21 2 2
2 3 5
3 7 5
1 4 1
4 3 1
4 5 7
5 7 1
1 6 3
6 7 3
輸出樣例#1:
5思路:
網路流;
二分答案;
然後刪邊;
然後看最大流是否大於t;
來,上**:
#include #include#include
#include
#include
#define maxn 205
#define inf 0x7fffffff
using
namespace
std;
struct
edgetype ;
struct edgetype edge[maxn*maxn*4
];int
s,t,deep[maxn];
int n,m,t,cnt=1,head[maxn],maxl,minl=0x7fffffff
;char
cget;
inline
void
in(int &now)
}bool
bfs()}}
return
false;}
int flowing(int now,int
flow)
}if(oldflow==0) deep[now]=-1
;
return
oldflow;
}bool check(int
pos)
int ans=0
;
while
(bfs())
ans+=flowing(s,inf);
if(ans>=t) return
true
;
else
return
false;}
intmain()
int l=minl,r=maxl,ans,mid;
while(l<=r)
cout
}
洛谷P1401 城市
n 2 n 200 個城市,m 1 m 40000 條無向邊,你要找t 1 t 200 條從城市1到城市n的路,使得最長的邊的長度最小,邊不能重複用。輸入格式 第1行三個整數n,m,t用空格隔開。第2行到p 1行,每行包括三個整數ai,bi,li表示城市ai到城市bi之間有一條長度為li的道路。輸出...
AC日記 拍照 洛谷 P3410
小b有n個下屬,現小b要帶著一些下屬讓別人拍照。有m個人,每個人都願意付給小b一定錢讓n個人中的一些人進行合影。如果這一些人沒帶齊那麼就不能拍照,小b也不會得到錢。注意 帶下屬不是白帶的!對於每個下屬,如果他帶了那麼小b需要給他一些錢,保證當他拍照時配合。請問,小b的淨收益最多是多少。輸入格式 第1...
AC日記 奶牛集會 洛谷 P2345
奶牛集會 思路 把奶牛按照v排序 然後,每次都把奶牛放入乙個集合s 因為奶牛已經排序 所以,每次第i次放入奶牛起作用的v就是vi 每次ans xi sum sumxl vi sumxr xi sum vi 可以用線段樹實現 來,上 include include include include us...