【题意】有n块草地,一些奶牛在草地上吃草,草地间有m条路,一些草地上有避雨点,每个避雨点能容纳的奶牛是有限的,给出通过每条路的时间,问最少需要多少时间能让所有奶牛进入一个避雨点。 和POJ2112很类似,都是使最大的走过路径长度和最小的题,也是先Floyd再二分求最大流看是否满流……昨天刚做啊,第一下竟然没看出来,真是太年轻太Naive了!……=_= 【思路】拆点建图,每个点的(in)和(out)间容量oo,源点向每个有牛的点(in)连边,容量为该点的牛数,每个有避雨点的点(out)向汇点连边,容量为避雨点能容纳的牛数。然后二分答案做最大流,满流就说明当前值可以让所有牛避雨成功,不断二分缩小答案就ok了。 【为什么要拆点】前几次没有多想,觉得拆点顺理成章的,太主观了,根本没有认真理解……这里要补充一下了: 从两个角度讲。第一,拆点是为了构造二分图,这样才不会出现环从而影响到超级源点到某个“源点”的入流量,如下图所示:     我们的加边是严格从i->i'的,由此可以看出i节点的入流完全取决于从超级源点来的流,这个流我们设置的是避雨棚当前的人数,这个人数当然从一开始就决定而与其他避雨棚无关且不可改变的。 而如果我们不拆点:   显然1、2、3的节点入流还取决于其他的避雨棚,这显然是不对的。另外,容易想到当前避雨棚人数好避雨棚可容纳人数怎么能放一起呢?显然需要拆点。 第二:   其中每条无向边表示两条方向相反的有向边,容量均为∞。当二分到T = 70的时候,显然我们只加入了(2, 3)和(3, 4)两条无向边,因为只有这两对点间的最短距离小于等于70。但是从图中也可以看出,由于没有拆点,点2也可以通过这两条边到达点4,而实际上这是不允许的。也就是说我们所加的限制条件没有起到作用。 简单的说,这里拆点的作用就是通过拆点加单向边来防止节点的间接连通。 由此可见,只有拆点才是正确的做法。 ============================================================================== 再一个就是吐槽本题数据……略变态…… 【代码】http://paste.ubuntu.com/5883013/

转载于:https://www.cnblogs.com/AbandonZHANG/p/4114257.html

POJ 2391 Ombrophobic Bovines ★(Floyd+二分+拆点+最大流)相关推荐

  1. POJ 2391 Ombrophobic Bovines 网络流 建模

    [题目大意] 给定一个无向图,点i处有Ai头牛,点i处的牛棚能容纳Bi头牛,求一个最短时间T使得在T时间内所有的牛都能进到某一牛棚里去.(1 <= N <= 200, 1 <= M ...

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

    题目地址:POJ2455 手残真浪费时间啊..又拖到了今天才找出了错误..每晚两道题不知不觉又变回了每晚一道题...sad.. 第一次在isap中忘记调用bfs,第二次则是遍历的时候竟然是从1開始遍历 ...

  3. 【bzoj1738】[Usaco2005 mar]Ombrophobic Bovines 发抖的牛 Floyd+二分+网络流最大流

    题目描述 FJ's cows really hate getting wet so much that the mere thought of getting caught in the rain m ...

  4. BZOJ 1738: [Usaco2005 mar]Ombrophobic Bovines 发抖的牛( floyd + 二分答案 + 最大流 )

    一道水题WA了这么多次真是.... 统考终于完 ( 挂 ) 了...可以好好写题了... 先floyd跑出各个点的最短路 , 然后二分答案 m , 再建图. 每个 farm 拆成一个 cow 点和一个 ...

  5. 【POJ 3273】 Monthly Expense (二分)

    [POJ 3273] Monthly Expense (二分) 一个农民有块地 他列了个计划表 每天要花多少钱管理 但他想用m个月来管理 就想把这个计划表切割成m个月来完毕 想知道每一个月最少花费多少 ...

  6. POJ 3165 最短路 floyd

    POJ  3165  最短路 floyd http://poj.org/problem?id=3615 dp方程(f[i][j]>MAX(f[i][k],f[k][j])) f[i][j]=MA ...

  7. POJ 3258 River Hopscotch (二分)

    题目地址:POJ 3258 水题.二分距离,判断是否可行.需要注意的是最后一个,因为最后一个是没法移除的,所以还要倒着判断一下. 代码如下: #include <iostream> #in ...

  8. POJ3189二分最大流(枚举下界,二分宽度,最大流判断可行性)

    题意:       有n头猪,m个猪圈,每个猪圈都有一定的容量(就是最多能装多少只猪),然后每只猪对每个猪圈的喜好度不同(就是所有猪圈在每个猪心中都有一个排名),然后要求所有的猪都进猪圈,但是要求所有 ...

  9. 【bzoj2324】[ZJOI2011]营救皮卡丘 最短路-Floyd+有上下界费用流

    原文地址:http://www.cnblogs.com/GXZlegend/p/6832504.html 题目描述 皮卡丘被火箭队用邪恶的计谋抢走了!这三个坏家伙还给小智留下了赤果果的挑衅!为了皮卡丘 ...

最新文章

  1. Solidity语言
  2. [Android动画] 帧动画-获取帧数( getNumberOfFrames)七
  3. 面试时遇到「看门狗」脖子上挂着「时间轮」,我就问你怕不怕?
  4. 水滴石穿C语言之extern声明辨析
  5. coreseek mysql安装_coreseek安装和使用(一)
  6. Android网络收集和ping封装库
  7. C语言k近邻算法及例题,K近邻算法的理解及KD树的构建
  8. XP系统时间同步和开启WindowsTime服务
  9. idea中的常用快捷键(新手必看)
  10. ECMAScript 6 入门教程
  11. springboot医院预约挂号系统在线视频点播系统毕业设计毕设作品开题报告开题答辩PPT
  12. 解读|风控模型的客观认识与深入理解
  13. 无线局域网技术分析及攻击实战
  14. ps 入门 传智播客_播客快速入门指南
  15. SAP web 开发 (第二篇 bsp 开发 mvc模式 Part1 )
  16. 有关REST的一些内容
  17. Qt实现telnet服务【记录】
  18. 东南大学计算机考研难不难,东南大学考研难吗?一般要什么水平才可以进入?...
  19. [笔记][java 4 android] [028~034]接口、异常和I/O流
  20. Memcached/Redis可视化客户端TreeNMS使用

热门文章

  1. python 苹果李子橙_Python模块知识6:OS、SYS模块
  2. 如何确认mongodb数据插入是否成功_go连接mongodb
  3. nvidia显示设置不可用_白送大福利?实战FreeSync显示器开启NVIDIA GSync Compatible
  4. ubuntu 14.04 安装oracle 11g,ubuntu 14.04 安装 oracle 11g
  5. java应用中spring自动注入_java-Spring Security会自动过滤注入吗?
  6. react native连接mysql_react-native上手之环境搭建及连接模拟器
  7. html2canvas 截图div_浏览器端网页截图方案详解
  8. VMware Workstation 与 Device/Credential Guard 不兼容
  9. spring单元测试无法注入bean_2019年,最新的Spring 面试108题 “ 系列 ”,附带答案.........
  10. mysql 编译_mysql 5.7 编译——VS2017