POJ 2455 Secret Milking Machine【二分+最大流】
2012-07-24 15:27
381 查看
题意: 已知有 n 块地,和已经存在的 m 条路径,要求找出从第 1 块地到第 n 块地的 T条不同路径,且每条路径上的道路不能与之前的路径重复,求出满足要求的路径中最长的道路最短可以是多少。
分析: 二分答案,将满足条件的道路长度容量设为 1 ,求最大流,最大流即为路径的条数。
EK:
分析: 二分答案,将满足条件的道路长度容量设为 1 ,求最大流,最大流即为路径的条数。
EK:
#include<stdio.h> #include<string.h> #include<stdlib.h> #define INF 99999999 #define maxn 230 #define clr(x)memset(x,0,sizeof(x)) #define min(a,b)(a)<(b)?(a):(b) int q[1000]; int flow[maxn][maxn]; int c[maxn][maxn]; int a[maxn]; int p[maxn]; int s,t,tt,n,m; int E_K() { clr(flow); clr(p); s=1; t=n; int maxflow=0; int u,v,front,rear; for(;;) { clr(a); a[s]=INF; front=rear=0; q[rear++]=s; while(front<rear) { u=q[front++]; for(v=1;v<=n;v++) if(!a[v]&&(c[u][v]>flow[u][v])) { p[v]=u; q[rear++]=v; a[v]=min(a[u],c[u][v]-flow[u][v]); } } if(a[t]==0) break; for(u=t;u!=s;u=p[u]) { flow[p[u]][u]+=a[t]; flow[u][p[u]]-=a[t]; } maxflow+=a[t]; } return maxflow; } struct node { int x,y,wi; }sc[410000]; bool ok(int di) { int i; clr(c); for(i=0;i<m;i++) if(sc[i].wi<=di) { c[sc[i].y][sc[i].x]+=1; c[sc[i].x][sc[i].y]+=1; } int fl=E_K(); if(fl>=tt) return true; return false; } int main() { int low,high,mid,i; while(scanf("%d%d%d",&n,&m,&tt)!=EOF) { low=0; high=0; clr(c); for(i=0;i<m;i++) { scanf("%d%d%d",&sc[i].x,&sc[i].y,&sc[i].wi); if(sc[i].wi>high) high=sc[i].wi; } int res; while(low<=high) { mid=(low+high)/2; if(ok(mid)) { high=mid-1; res=mid; } else low=mid+1; } printf("%d\n",res); } return 0; }
相关文章推荐
- poj - 2455 - Secret Milking Machine(最大流+二分)
- POJ 2455 Secret Milking Machine(二分答案+最大流)
- POJ 2455 Secret Milking Machine && 二分枚举 + 最大流
- POJ-2455 Secret Milking Machine 二分+最大流
- poj2455 Secret Milking Machine(二分答案+最大流)
- POJ 2455 Secret Milking Machine (二分 + 最大流)
- POJ 2455 Secret Milking Machine (二分答案+最大流)
- poj 2455 Secret Milking Machine 二分+最大流
- POJ 2455 Secret Milking Machine(搜索-二分,网络流-最大流)
- POJ 2455 Secret Milking Machine(搜索-二分,网络流-最大流)
- POJ 2455 Secret Milking Machine (二分+无向图最大流)
- Poj 2455 Secret Milking Machine【二分+最大流】
- POJ2455 Secret Milking Machine【二分,最大流】
- POJ 2455 Secret Milking Machine(搜索-二分,网络流-最大流)
- POJ 2455 Secret Milking Machine (二分+无向图最大流)
- poj 2455 Secret Milking Machine 【二分 + 最大流】 【1到N不重复路径不少于T条时,求被选中路径上的最大边权值 的最小值】
- poj 2455 Secret Milking Machine 二分+最大流 sap
- poj 2455 Secret Milking Machine(二分枚举+最大流)
- POJ2455 Secret Milking Machine 典型二分答案+最大流判定
- POJ2455 Secret Milking Machine 典型二分答案+最大流判定