P1401 城市(30分,正解网络流)
2017-06-28 20:33
232 查看
题目描述
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 2 1 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 正解是网络流。。。 所以就比较尴尬了。。 但是二分答案还是写出来了 等我哪天会了网络流一定回来A了这题。。
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<queue> using namespace std; const int MAXN=40001; void read(int & n) { char c='+';int x=0;bool flag=0; while(c<'0'||c>'9') {c=getchar();if(c=='-')flag=1;} while(c>='0'&&c<='9') {x=x*10+(c-48);c=getchar();} flag==1?n=-x:n=x; } int n,m,t; struct node { int u,v,w,nxt,use; }edge[MAXN]; int head[MAXN]; int num=1; void add_edge(int x,int y,int z) { edge[num].u=x; edge[num].v=y; edge[num].w=z; edge[num].nxt=head[x]; head[x]=num++; } int maxl=-1,minl=0x7fff; int vis[MAXN]; int map[201][201]; int have[201][201]; int bfs(int need) { queue<int>q; q.push(1); while(q.size()!=0) { int p=q.front(); q.pop(); for(int i=head[p];i!=-1;i=edge[i].nxt) { if(edge[i].w<=need&&have[edge[i].u][edge[i].v]==0) { have[edge[i].u][edge[i].v]=1; have[edge[i].v][edge[i].u]=1; if(edge[i].v!=n) q.push(edge[i].v); vis[edge[i].v]++; } } } if(vis >=t) return 1; else return 0; } int pd(int p) { memset(vis,0,sizeof(vis)); memset(have,0,sizeof(have)); if(bfs(p)) return 1; else return 0; } int main() { read(n);read(m);read(t); for(int i=1;i<=n;i++) head[i]=-1; for(int i=1;i<=m;i++) { int x,y,z; read(x);read(y);read(z); add_edge(x,y,z); add_edge(y,x,z); maxl=max(maxl,z); minl=min(minl,z); } int l=minl,r=maxl; while(l<r) { int mid=(l+r)>>1; if(pd(mid)) r=mid; else l++; } printf("%d",l); return 0; }
相关文章推荐
- 洛谷 P1401 城市(二分+网络流)
- 城市重建(网络流)
- AC日记——城市 洛谷 P1401
- 洛谷P1401 城市
- [网络流专练2][太空城市飞行计划问题]
- SGU 326 Perspective ★(网络流经典构图の竞赛问题)
- React Native Picker (城市选择器)
- 二线城市成团购生命线
- 使用html5定位经纬度然后用百度api获取城市等位置信息
- hdu 4280 网络流
- 省市区三级联动效果--城市数据来源百度js文件,无需后台交互
- android 利用百度地图地位获取当前城市
- iOS CoreLocation 实现简单定位(现实城市)
- 01. 搭配飞行员 [网络流24题]
- 城市列表切换
- 网络流 dicnic sap 2种算法详细解释 以及例题POJ1459
- hdu 2883 网络流+离散化
- 网络流Dinic算法详解及模板
- 中国城市级别划分