#include<stdio.h>

#include<queue>

#include<string.h>

using namespace std;

#define inf 0x7fffffff

#define N 300

int p,t,n;

int Min(int a,int b) {

return a>b?b:a;

}

struct node {

   int u,v,w,f;

}mp[40001];

int flow[N][N],d[N];

int bfs() {

 int cur,i;

 queue<int>q;

 memset(d,0,sizeof(d));

 d[1]=1;

   q.push(1);

    while(!q.empty()) {

        cur=q.front();

        q.pop();

        for(i=1;i<=n;i++)

     if(flow[cur][i]&&!d[i]) {

          d[i]=d[cur]+1;

          if(i==n)

            return 1;

           q.push(i);

     }

    }

    return 0;

}

int dfs(int u,int limit) {

    if(u==n)

        return limit;

  int cost=0,i,k;

 for(i=1;i<=n;i++)

    if(d[i]==d[u]+1&&flow[u][i]) {

        k=dfs(i,Min(limit-cost,flow[u][i]));

        if(k>0) {

            flow[u][i]-=k;

            flow[i][u]+=k;

            cost+=k;

            if(cost==limit)

                break;

        }

        else

            d[i]=-1;

    }

    return cost;

}

int dinic (int mid) {

   int ans=0,i;

    memset(flow,0,sizeof(flow));

  for(i=1;i<=p;i++)

    if(mp[i].w<=mid) {

   flow[mp[i].u][mp[i].v]++;

   flow[mp[i].v][mp[i].u]++;

    }

   while(bfs())

    ans+=dfs(1,inf);

     if(ans>=t)

        return 1;

     return 0;

}

int main() {

      int i,min,max,mid;

      while(scanf("%d%d%d",&n,&p,&t)!=EOF) {

            min=inf;

      max=-1;

         for(i=1;i<=p;i++) {

            scanf("%d%d%d",&mp[i].u,&mp[i].v,&mp[i].w);

            if(mp[i].w>max)

                max=mp[i].w;

            if(mp[i].w<min)

                min=mp[i].w;

         }

          while(min<=max) {

            mid=(min+max)/2;

            if(dinic(mid))

                max=mid-1;

            else

                min=mid+1;

          }

          printf("%d\n",min);

      }

return 0;

}

nyoj 310二分+dinic的更多相关文章

  1. poj 2391 Ombrophobic Bovines, 最大流, 拆点, 二分, dinic, isap

    poj 2391 Ombrophobic Bovines, 最大流, 拆点, 二分 dinic /* * Author: yew1eb * Created Time: 2014年10月31日 星期五 ...

  2. POJ2391 Floyd+离散化+二分+DINIC

    题意:       有n个猪圈,每个猪圈里面都有一定数量的猪(可能大于当前猪圈的数量),每个猪圈都有自己的容量,猪圈与猪圈之间给出了距离,然后突然下雨了,问多久之后所有的猪都能进圈. 思路:     ...

  3. Optimal Milking(POJ2112+二分+Dinic)

    题目链接:http://poj.org/problem?id=2112 题目: 题意:有k台挤奶机,c头奶牛,每台挤奶机每天最多生产m的奶,给你每个物品到其他物品的距离(除了物品到自己本省的距离为0外 ...

  4. POJ 3189 二分+Dinic

    题意: 思路: 二分跨度 枚举最低座次 建图:源点向每头牛连边权为1的边 每头牛向当前枚举的B的区间这段连上边权为1的边 所有座次向汇点连边权为牛棚容量的边 判判流量是不是等于n 一开始写得是直接枚举 ...

  5. nyoj-310-河南省第四届省赛题目-二分+dinic

    SECRET 时间限制:3000 ms  |  内存限制:65535 KB 难度:6   描述 Dr.Kong is constructing a new machine and wishes to ...

  6. nyoj 306 二分+dfs

    #include<stdio.h> #include<string.h> #define N 200 int Min(int a,int b) { return a>b? ...

  7. JSOI2018R2题解

    D1T1:潜入行动 裸的树上DP.f[i][j][0/1][0/1]表示以i为根的子树放j个设备,根有没有放,根有没有被子树监听,的方案数.转移显然. #include<cstdio> # ...

  8. 2019 wannafly winter camp day5-8代码库

    目录 day5 5H div2 Nested Tree (树形dp) 5F div2 Kropki (状压dp) 5J div1 Special Judge (计算几何) 5I div1 Sortin ...

  9. poj 2112 floyd+Dinic最大流+二分最小值

    题目大意是: K台挤奶机器,C头牛,K不超过30,C不超过200,每台挤奶机器最多可以为M台牛工作,给出这些牛和机器之间,牛和牛之间,机器与机器之间的距离,在保证让最多的牛都有机器挤奶的情况下,给出其 ...

随机推荐

  1. java异步编程

    异步编程提供了一个非阻塞事件驱动的模型.通过异步消除阻塞,可以让web服务响应更多请求.可以让系统更高效的执行.比如log框架,记录日志或异常时异步执行可避免影响正常业务流程的执行. 异步变成如何把线 ...

  2. MSP430:定时器学习TimerA

    4. 定时器TA 一.时钟源1.时钟源:ACLK/SMCLK 外部TACLK/INCLK2.分频:1/2/4/8 当 (注:TACLR 置位时,分频器复位) 二.计数模式通过设置MCx可以设置定时器的 ...

  3. java网络编程TCP

    图片来自网络 [服务端] import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; im ...

  4. PCB 钻孔补偿那点事

    没有优秀的个人,只有优秀的团队,在团队共同的协作下,PCB CAM自动化[net处理]与[钻孔处理] 第一阶段开发项完成了,,后续工作可以转向PCB规则引擎开发了.这里说说PCB工程钻孔补偿的那点事, ...

  5. [Swift通天遁地]七、数据与安全-(9)文件的压缩和解压

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  6. Akka源码分析-官方文档说明

    如果有小伙伴在看官方文档的时候,发现有些自相矛盾的地方,不要怀疑,可能是官方文档写错了或写的不清楚,毕竟它只能是把大部分情况描述清楚.开源代码一直在更新,官方文档有没有更新就不知道了,特别是那些官方不 ...

  7. RHEL6.5 设置yum,IP地址,解压缩

    系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接 服务器相关设置如下: 操作系统:RHEL 6.5 64位 IP地址:192.168. ...

  8. Java初级面试模拟1

    1.简单介绍一下你的项目,说一下项目有什么模块 2.说说常见的集合有哪些吧 答:Map接口和Collection接口是所有集合框架的父接口: Collection接口的子接口包括:Set接口和List ...

  9. linux 查看 cpu

    如何获得CPU的详细信息: linux命令:cat /proc/cpuinfo 用命令判断几个物理CPU,几个核等: 逻辑CPU个数:# cat /proc/cpuinfo | grep " ...

  10. HDU 5306 吉司机线段树

    思路: 后面nlogn的部分是伪证... 大家可以构造数据证明是这是nlog^2n的啊~ 吉老司机翻车了 //By SiriusRen #include <cstdio> #include ...