POJ 2455 网络流英文阅读题
来源:互联网 发布:mac新版itunes添加铃声 编辑:程序博客网 时间:2024/06/06 09:37
老戴找...
这题还是很有意思的.. 哈哈~
也想了我蛮久的... 但是这题的无向边感觉有点不对劲啊!这也能AC??我都不相信啊!!
网络流的边还是不能轻易覆盖的!
#include<iostream>#include<string>#include<cstdio>#include<algorithm>#define MN 222#define INF 1111111using namespace std;struct EDGE{ int u,v,len;}edge[MN*MN];int N,P,T,ans,s,t,r,l;int map[MN][MN],pre[MN],vis[MN],a[MN],que[MN];bool cmp( EDGE a,EDGE b ){ return a.len<b.len;}void setG(){ r=INF;l=1;s=1;t=N; int i,j,k,u,v,len; for( i=0;i<P;i++ ) scanf( "%d%d%d",&edge[i].u,&edge[i].v,&edge[i].len ); sort( edge,edge+P,cmp );}void initG( int len ){ memset( map,0,sizeof(map) ); int i,j,k; for( i=0;edge[i].len<=len&&i<P;i++ ) { map[edge[i].u][edge[i].v]++; map[edge[i].v][edge[i].u]++; }}bool bfs(){ int i,j; memset( vis,0,sizeof(vis) ); int head=0,foot=0; que[foot++]=s;vis[s]=true;a[s]=INF; while( head<foot ) { int u=que[head++]; for( i=1;i<=t;i++ ) { if( !vis[i]&&map[u][i] ) { vis[i]=true; a[i]=min( a[u],map[u][i] ); que[foot++]=i; pre[i]=u; if( i==t ) return true; } } } return false;}bool work(){ ans=0; while( bfs() ) { int m=t; ans+=a[t]; while( m!=s ) { map[pre[m]][m]-=a[t]; map[m][pre[m]]+=a[t]; m=pre[m]; } } if( ans>=T ) return true; else return false;}int main(){ while( scanf("%d%d%d",&N,&P,&T)!=EOF ){ setG(); int mid; while( (mid=(l+r)/2)&&l<r ){ initG(mid); if( work() ) r=mid; else l=mid+1; } printf( "%d\n",mid ); }}
- POJ 2455 网络流英文阅读题
- POJ 2112 网络流英文阅读题
- POJ 3498 网络流英文阅读题
- POJ 3436 网络流 英文阅读题+技巧题
- ZOJ 2332 网络流英文阅读题
- POJ 1459 基本输入题&&英文阅读题
- POJ-2803 英文阅读+字符串处理
- 英文阅读
- 英文阅读
- 阅读英文
- POJ 3371 判断英文阅读轻松度(模拟)
- poj 2455 网络流
- poj 2455 二分+网络流
- POJ 2455 二分+网络流
- POJ 2455 二分+网络流
- 英文文献阅读有感
- 阅读英文文献方法
- 程序员英文休闲阅读
- 经典排序算法3(选择排序)
- C++ 对象指针(函数指针)
- linux下mysql配置文件my.cnf详解
- C++第12周报告(一)用循环控制语句编写程序,完成表达式的计算
- java学习笔记之Arrays.asList
- POJ 2455 网络流英文阅读题
- 如何计算空间复杂度
- 软件项目管理框架--生命周期阶段
- HDU 3986 最短路+枚举
- 深入浅出Windows PE(一) PE文件头
- Windows Phone开发(29):隔离存储C
- c++多线程(二)
- Java对象持久化技术Hibernate入门之一
- Mapreduce for Machine Learning