POJ Secret Milking Machine 【网络流+二分】
题意:各一个地图,两点之间有若干条路,要在节点1和节点n之间行走t次(就是问1到n的路径数至少为t,每一条路径不能有重复),问所有路径里面最长的部分(这个题目特别强调,不是路径长度和,是路径中相邻两点的距离)最小是多少。
网络流+二分。
二分路径最长的一段,根据二分值构图。
构图方法:
如果两点路径长度小于x,则两点之间连接一条边,权值为1(如果已经连接了,权值加1)。
最大流既是从1到n不重复的路径条数,判断是否大于规定的t条即可。
注意一下这题是无向图,两个方向的初始流量相等(有向图只有一个方向有流量,另外一个方向的流量初始为0)。
- #include <iostream>
- #include <cstring>
- #include <vector>
- #include <cstdio>
- #include <algorithm>
- using namespace std;
- #define N 240
- #define INF 0x3f3f3f3f
- class Dinic {
- public:
- int n, s, t, l[N], c[N][N], e[N];
- int flow(int maxf = INF) {
- int left = maxf;
- while (build()) left -= push(s, left);
- return maxf - left;
- }
- int push(int x, int f) {
- if (x == t) return f;
- int &y = e[x], sum = f;
- for (; y<n; y++)
- if (c[x][y] > 0 && l[x]+1==l[y]) {
- int cnt = push(y, min(sum, c[x][y]));
- c[x][y] -= cnt;
- c[y][x] += cnt;
- sum -= cnt;
- if (!sum) return f;
- }
- return f-sum;
- }
- bool build() {
- int m = 0;
- memset(l, -1, sizeof(l));
- l[e[m++]=s] = 0;
- for (int i=0; i<m; i++) for (int y=0; y<n; y++)
- if (c[e[i]][y] > 0 && l[y]<0) l[e[m++]=y] = l[e[i]] + 1;
- memset(e, 0, sizeof(e));
- return l[t] >= 0;
- }
- } net;
- int n, p, t, a[40004], b[40004], c[40004];
- bool ok(int x) {
- memset(net.c, 0, sizeof(net.c));
- net.s = 0, net.t = n-1, net.n = n;
- for (int i=0; i<p; i++) if (c[i] <= x)
- net.c[a[i]-1][b[i]-1]++, net.c[b[i]-1][a[i]-1]++; //本题是无向图,所以 i->j 和 j->i 都要增加
- return net.flow() >= t;
- }
- int main() {
- scanf("%d%d%d", &n, &p, &t);
- for (int i=0; i<p; i++) scanf("%d%d%d", &a[i], &b[i], &c[i]);
- int l = 0, r = INF, mid, ans;
- while (l <= r) {
- mid = (l + r) >> 1;
- if (ok(mid)) {
- ans = mid;
- r = mid - 1;
- } else l = mid + 1;
- }
- cout << ans << endl;
- return 0;
- }
POJ Secret Milking Machine 【网络流+二分】的更多相关文章
- POJ 2455:Secret Milking Machine(二分+最大流)
http://poj.org/problem?id=2455 题意:给出n个点和m条无向路,每条路都有一个长度.从1点到n点要走t次两两互不重合的路.求出每条1->n的路中相邻两点最大值的最小值 ...
- POJ 2455Secret Milking Machine(二分+网络流之最大流)
题目地址:POJ2455 手残真浪费时间啊..又拖到了今天才找出了错误..每晚两道题不知不觉又变回了每晚一道题...sad.. 第一次在isap中忘记调用bfs,第二次则是遍历的时候竟然是从1開始遍历 ...
- POJ 2455 Secret Milking Machine 【二分】+【最大流】
<题目链接> 题目大意: FJ有N块地,这些地之间有P条双向路,每条路的都有固定的长度l.现在要你找出从第1块地到第n块地的T条不同路径,每条路径上的路段不能与先前的路径重复,问这些路径中 ...
- [BZOJ 1733] [Usaco2005 feb] Secret Milking Machine 【二分 + 最大流】
题目链接:BZOJ - 1733 题目分析 直接二分这个最大边的边权,然后用最大流判断是否可以有 T 的流量. 代码 #include <iostream> #include <cs ...
- POJ2455 Secret Milking Machine【二分,最大流】
题目大意:N个点P条边,令存在T条从1到N的路径,求路径上的边权的最大值最小为多少 思路:做了好多二分+最大流的题了,思路很好出 二分出最大边权后建图,跑dinic 问题是....这题是卡常数的好题! ...
- POJ 2455 Secret Milking Machine(搜索-二分,网络流-最大流)
Secret Milking Machine Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9658 Accepted: ...
- 【bzoj1733】[Usaco2005 feb]Secret Milking Machine 神秘的挤奶机 二分+网络流最大流
题目描述 Farmer John is constructing a new milking machine and wishes to keep it secret as long as possi ...
- POJ 2455 Secret Milking Machine(最大流+二分)
Description Farmer John is constructing a new milking machine and wishes to keep it secret as long a ...
- BZOJ 1733: [Usaco2005 feb]Secret Milking Machine 神秘的挤奶机 网络流 + 二分答案
Description Farmer John is constructing a new milking machine and wishes to keep it secret as long a ...
随机推荐
- liunx使用技巧
1.挂载与卸载U盘 新建一个目录:mkdir /mnt/usb; Fdisk –l |less 查看添加之后的设备名,设备文件系统格式 加载U盘设备: mount –t vfat /mnt/usb ...
- RHEL6.4 NFS文件共享服务搭建
NFS文件共享服务 1 实验方案 使用2台RHEL6.4虚拟机,其中一台作为NFS共享服务器(192.168.100.1).另外一台作为测试用的NFS客户机(192.168.100.2) 2.实现 2 ...
- 工具类_java 操作cookie
import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.net.URLEncoder;im ...
- cocos2dx 在mac下开发ios和android游戏
这里主要说android,因为ios开发在文章 http://blog.csdn.net/itcastcpp/article/details/24792323 中已经说过. 1)打开工程 打开ecli ...
- POJ 3080 Blue Jeans(后缀数组+二分答案)
[题目链接] http://poj.org/problem?id=3080 [题目大意] 求k个串的最长公共子串,如果存在多个则输出字典序最小,如果长度小于3则判断查找失败. [题解] 将所有字符串通 ...
- Linux-NGINX 能否添加P3P头,如何添加。 - 德问:编程社交问答
Linux-NGINX 能否添加P3P头,如何添加. - 德问:编程社交问答 您的投票让 杜鑫 声誉值增加5分. 支持投票,不仅能让提问用户获得声誉值,让好的问题有更多的曝光,更能帮助社区筛选出好 ...
- 【D3.V3.js系列教程】--(十二)坐标尺度
[D3.V3.js系列教程]--(十二)坐标尺度 1.多种类型的缩放尺度 Quantitative Scales Linear Scales Identity Scales Power Scales ...
- 纯代码 自己主动屏幕适配iPhone button
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2h1bmdlc2hpaHVhdGlhbg==/font/5a6L5L2T/fontsize/400/fil ...
- JavaSE_ 反射 目录(27)
JavaSE学习总结第27天_反射 & 设计模式 & JDK5.7.8新特性27.01 反射_类的加载概述和加载时机27.02 反射_类加载器的概述和分类27.03 反射_反射概述27 ...
- 2045不容易系列之(3)—— LELE的RPG难题
Problem Description人称“AC女之杀手”的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多“Cole”(LELE的粉丝,即”可乐”),经过多方打探,某资深Cole终于知道了原因,原 ...