链接

二分距离,小于当前距离的边容量+1,使最后流>=t

注意 会有重边

 #include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
#include<vector>
#include<cmath>
#include<queue>
#include<set>
using namespace std;
#define N 205
#define LL long long
#define INF 0xfffffff
const double eps = 1e-;
const double pi = acos(-1.0);
const double inf = ~0u>>;
int path[N],flow[N],gh[N][N],st,en;
int w[N][N];
struct node
{
int u,v,c;
}q[N*N];
int bfs()
{
int i;
memset(path,-,sizeof(path));
for(i = ; i <= en ; i++)
flow[i] = INF;
queue<int>q;
q.push();
while(!q.empty())
{
int tk = q.front();
q.pop();
if(tk==en)
break;
for(i = ; i <= en ; i++)
{
if(path[i]==-&&gh[tk][i])
{
path[i] = tk;
flow[i] = min(flow[tk],gh[tk][i]);
q.push(i);
}
}
}
if(path[en]==-)
return -;
return flow[en];
}
int EK()
{
int now,pre,sum=,k;
while((k=bfs())!=-)
{
sum+=k;
now = en;
while(now!=st)
{
pre = path[now];
gh[pre][now]-=k;
gh[now][pre]+=k;
now = pre;
}
}
return sum;
}
int main()
{
int n,p,i,m;
while(scanf("%d%d%d",&n,&p,&m)!=EOF)
{
for(i = ; i <= p ;i++)
{
scanf("%d%d%d",&q[i].u,&q[i].v,&q[i].c);
q[i].u++,q[i].v++;
}
st = ;
en = n+;
int low = ,high = ,mid;
while(low<=high)
{
mid = (low+high)>>;
memset(gh,,sizeof(gh));
gh[st][] = m;
gh[n+][en] = m;
for(i = ;i <= p ; i++)
if(q[i].c<=mid)
{
gh[q[i].u][q[i].v]+=;
gh[q[i].v][q[i].u]+=;
}
if(EK()==m)
high = mid-;
else
low =mid+;
}
cout<<low<<endl;
}
return ;
}

poj2455Secret Milking Machine(二分+最大流)的更多相关文章

  1. poj 2455 Secret Milking Machine 二分+最大流 sap

    题目:p条路,连接n个节点,现在需要从节点1到节点n,不重复走过一条路且走t次,最小化这t次中连接两个节点最长的那条路的值. 分析:二分答案,对于<=二分的值的边建边,跑一次最大流即可. #in ...

  2. POJ 2455 Secret Milking Machine (二分 + 最大流)

    题目大意: 给出一张无向图,找出T条从1..N的路径,互不重复,求走过的所有边中的最大值最小是多少. 算法讨论: 首先最大值最小就提醒我们用二分,每次二分一个最大值,然后重新构图,把那些边权符合要求的 ...

  3. POJ2455Secret Milking Machine[最大流 无向图 二分答案]

    Secret Milking Machine Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11865   Accepted ...

  4. POJ 2455 Secret Milking Machine(最大流+二分)

    Description Farmer John is constructing a new milking machine and wishes to keep it secret as long a ...

  5. POJ 2455 Secret Milking Machine (二分+无向图最大流)

    [题意]n个点的一个无向图,在保证存在T条从1到n的不重复路径(任意一条边都不能重复)的前提下,要使得这t条路上经过的最长路径最短. 之所以把"经过的最长路径最短"划个重点是因为前 ...

  6. POJ 2112 Optimal Milking (Floyd+二分+最大流)

    [题意]有K台挤奶机,C头奶牛,在奶牛和机器间有一组长度不同的路,每台机器每天最多能为M头奶牛挤奶.现在要寻找一个方案,安排每头奶牛到某台机器挤奶,使得C头奶牛中走过的路径长度的和的最大值最小. 挺好 ...

  7. POJ 2112 Optimal Milking(二分+最大流)

    http://poj.org/problem?id=2112 题意: 现在有K台挤奶器和C头奶牛,奶牛和挤奶器之间有距离,每台挤奶器每天最多为M头奶挤奶,现在要安排路程,使得C头奶牛所走的路程中的最大 ...

  8. POJ - 2112 Optimal Milking (dijkstra + 二分 + 最大流Dinic)

    (点击此处查看原题) 题目分析 题意:在一个农场中有k台挤奶器和c只奶牛,每个挤奶器最多只能为m只奶牛挤奶,每个挤奶器和奶牛都视为一个点,将编号1~k记为挤奶器的位置,编号k+1~k+c记为奶牛的位置 ...

  9. 【bzoj1733】[Usaco2005 feb]Secret Milking Machine 神秘的挤奶机 二分+网络流最大流

    题目描述 Farmer John is constructing a new milking machine and wishes to keep it secret as long as possi ...

随机推荐

  1. Exchangeable image file format

    Exif - Wikipedia https://en.wikipedia.org/wiki/Exif

  2. JUNO eclipse Version: 4.2.0 添加svn插件

    1.下载最新的这个版本的SVN http://www.eclipse.org/subversive/latest-releases.php 实际的下载地址 http://www.eclipse.org ...

  3. SimpleAdapter ArrayAdapter用法

    listView = (ListView) findViewById(R.id.list_main); /* String[] strings = {"A","A&quo ...

  4. UIBarButtonSystemItem 各种款式

  5. POJ 2421 Constructing Roads (Kruskal算法+压缩路径并查集 )

    Constructing Roads Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 19884   Accepted: 83 ...

  6. Axios 请求配置参数详解

    axios API 可以通过向 axios 传递相关配置来创建请求 axios(config)   // 发送 POST 请求   axios({   method: 'post',   url: ' ...

  7. 一题多解 —— linux 日志文件(log)reload 重新载入

    1. tail -F 等同于–follow=name –retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪 也即可以间接实现从日志文件末尾,不断载 ...

  8. 创建Android本地repo

    /**************************************************************************** * 创建Android本地repo * 说明 ...

  9. CodeForces-380C:Sereja and Brackets(线段树与括号序列)

    Sereja has a bracket sequence s1, s2, ..., sn, or, in other words, a string s of length n, consistin ...

  10. 理解Objective-C Runtime (五)协议与分类

    Objective-C中的分类允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到. Objective-C中的协议是普遍存在的 ...