网络流专题

刷网络流专题也有一周了,该进行下一个阶段的计划了,还有几道题留着产仔吧。php

总结:只要模板好,没有题A不掉。算法

核心:建图。网络

分别写博客太费时间,一块儿汇个总吧。闭包


POJ-3436 ACM Computer Factory
优化

题意很迷,看完了都不造让你干什么。很难和网络流结合。spa

题意:一台电脑有p个零,有n台机器,每台机器能够给装上某些零件,也能够给卸载。求单位时间的最大生产量。.net

建图:以0为源点,源点和输入没有1的机器连边,容量为INF,机器自己连一条边,容量为其生产效率,若是一台机器产出效果知足另外一台机器的输入要求,那么这两台机器也要连边,容量为INF,构造一个汇点,产出全为1的机器和汇点连边,容量为INF。源点到汇点求一个最大流便可。rem

提交代码:https://cn.vjudge.net/contest/170280#status/liuyuqiang0/A/0/get



POJ-3281 Dining (推荐)
博客

题意:n头牛,F种食物,D种饮料。n头牛都喜欢的各类食物和饮料,给一头牛分配一种食物和一种饮料能使其知足,每种食物和饮料只能被分配一次,求最多能够有多少头牛被知足。(目测此题数据较水,不拆点也能过)

建图:把牛拆点。以0为源点,和每种食物连一条边,容量为1,食物和牛的入点连边,容量为1,牛和牛的出点连边,容量为1,牛的出点和饮料连边,容量为1,饮料和汇点连边,容量为1.求一遍最大流便可。

提交代码:https://cn.vjudge.net/contest/170280#status/liuyuqiang0/B/0/



POJ-1087 A Plug for UNIX (推荐)

题意:n种型号的插座,m种电器,每种对应一种型号的插座,k种适配器,能够用其中一种代替另外一种。求最少有几个电器找不到插座。

建图:先跑一个floyd传递闭包。仍是以0点为源点,分别和电器连边,容量为1,电器到插头连边,容量为1,插头和汇点连边,容量为1。求一波最大流。

这道题也能够用二分匹配写,建图相似。数据略坑。

代码:https://cn.vjudge.net/contest/170280#status/liuyuqiang0/C/0/



POJ-2195 Going Home (推荐)

题意:n*m的格子,每一个格子上能够是人用m表示,也能够是房子用H表示,也能够是空白的。每一个房子只能住一我的,每一个格子上均可以同时容纳全部的人,保证人的数量和房子的数量相同,求全部人找到本身的房子所走的距离和的最小值。

建图:典型费用流,其实题意已经暗示怎么建图了。仍是以0为源点,和全部的人建图,容量为1,费用为0,每一个人和全部的房子建边,容量为1,费用为曼哈顿距离,全部的房子和汇点建边,容量为1,费用为0,求一波最小费用最大流。

代码:https://cn.vjudge.net/contest/170280#status//D/0/



POJ-2516 Minimum Cost(推荐)

题意:m个商店,每一个商店售卖k种货物,每种货物都有必定的库存,n个顾客,每一个顾客对每种货物都有必定的需求量。每一个商家将每种货物运送至不一样的客户都有一个费用。求是否能知足全部顾客的需求,输出总运输费的最小值。

建图:多源点多汇点的网络流,对每种商品分别建图求费用流,总的值就是答案,但须要判断每种商品的库存是否能知足全部顾客的需求。

代码:https://cn.vjudge.net/contest/170280#status//E/0/



POJ-1459 Power Network

题意:一个电网总共有n个点,np个供电站,每一个供电站都有必定的电量储存,nc个客户,每一个客户都有一个电量消耗的最大值,m条电线,每条电线都有其最大承载电量。求这个电网的最大消耗电量。

建图:仍是以0点为源点,源点和供电站连边,容量为对应电站的电量。电线做为普通边。客户和汇点连边,容量为客户的最大消耗量。求一波最大流。

代码:https://cn.vjudge.net/contest/170280#status/liuyuqiang0/F/0/




HDU-4280 

Island Transport(推荐)


题意:n个小岛之间有m条无向运输路线,每条路线单位时间均可以运输必定的人,最左端的点为起点,最右端的点为终点。求单位时间最多能从起点至终点运输多少人。

建图:源点和汇点都已经给定,求最大流。但数据很大,对算法的高效性和有要求,用bfs+栈优化的ISAP能够过。

代码:https://cn.vjudge.net/contest/170280#status/liuyuqiang0/G/0/




HDU-4292 

Food


题意:和POJ-3281同样。F种食物D种饮料,每种都有必定的数量,n我的每一个人都有本身的喜爱,若是他喜欢的东西没有了那么直接离开,其实就是求最多有多少人两种都知足。

建图:0点为源点,源点到食物建边,容量为食物的数量,食物到人建边,人到饮料建边,容量都为1,饮料到汇点建边,容量为饮料的数量。求最大流。

题意:https://cn.vjudge.net/contest/170280#status//H/0/



HDU-4289 Control(推荐)

 

题意:n个城市m条无向边,给出两个点,间谍从一个起点到终点运输核武器。n个城市每一个城市设置监察所都有一个费用,求须要设置多少个点总费用最小使得没法到达终点。

建边:拆点,把每一个城市拆成出点和入点容量为其费用,其余全部的边容量都为INF。源点到起点连边,终点到汇点连边。求最大流。

代码:https://cn.vjudge.net/contest/170280#status/liuyuqiang0/I/0/



UVA - 10480 Sabotage

 (推荐)

题意:和上一个题很相似,上一个题是断多少点费用最小使得没法到达终点,这一题是断一些边费用最少使得没法到达终点。

这一题老实说不太会,这个题是一个定理:最小割定理。求完最大流后的残余网络中,残量大于0的和源点在一块儿做为S集合,剩下的做为T集合。把全部S-T的边断开便可。

代码:https://cn.vjudge.net/contest/170280#status/liuyuqiang0/J/0/



HDU-3605 Escape

 (推荐)

题意:n我的,m个星球。每一个人能够适合一些星球,每一个星球有最大的承载量。求是否全部人都能居住在外星球上。

建图:很卡时间。n的范围是1e5,而m的范围是10,若是直接建图边的数量可达2e6。因此确定是要换方法的,听说可用多重匹配写。不过用网络流也是能够的,注意到m只有10,那么每一个人所适应的星球最多有10个,也就是说能够将人划分为1024类,这样就极大缩小的点的数量,而后建图一波最大流便可。

代码:https://cn.vjudge.net/contest/170280#problem/M


  今天先到这了,下周,准确来讲是明天开始下一个专题了。

相关文章
相关标签/搜索