
最大流
进修中的涵涵涵
acm退役选手
acm icpc 金
dota爱好者
展开
-
HDU 2732 Leapin' Lizards (最大流)
题目链接 题目大意:有一些蜥蜴在一些迷宫里,迷宫的行数为n列数没给,每个蜥蜴每次可以跳跃的最大距离为d,现在给出两个矩阵,第一个描述的是每个位置最多可以被走几次,第二个描述的是哪里有蜥蜴,问最少有几只蜥蜴无法走出迷宫。 分析建图: 这也是一个最大流问题,通过贪心的思想可以知道: 如果一个位置能够直接跳出迷宫,那么最优方案肯定是直接跳出,于是可以将这些点直接与汇点相连。 因原创 2016-12-14 17:21:35 · 549 阅读 · 0 评论 -
POJ 2195 Going Home (最小费用最大流)
题目链接 第一次写最小费用最大流 最小费用最大流相当于最短路和最大流的结合,建立了残量图后,费用作为距离 然后bfs遍历源点到汇点的最小费用,用数组记录遍历路径,而后通过最大流的做法 对残量图进行更新,寻找路径中的最小流量得到的就是最小费用最大流。 题目大意:图中有若干个m和H,每个m都要回到一个H,问最少走多少步 这里可以把走的步数定位费用 于是可以建图 源点 链接 人 流量为1原创 2016-12-12 16:57:57 · 425 阅读 · 0 评论 -
HDU-3416 Marriage Match IV(最大流+最短路)
点击查看原题 题目大意:从A地到B地有几条路径不重复的最短路 分析:题意很简单,首先先跑两遍最短路 找到A地到各点的最短路和B到各点的最短路,然后找到属于最短路里的路径进行最大流的建图 disA[u]+disB[v]+w=disA[B]; (A点到当前边的起点的距离+B到当前边终点的距离+当前边权值 判断是否等于最短路距离) AC代码//最大流加最短路 #include<stdio.h>原创 2017-01-13 14:06:15 · 723 阅读 · 0 评论 -
HDU - 3081 Marriage Match II(最大流+并查集+二分查找)
点击查看原题 题目大意:一个(很恶俗的)交友游戏,男女搭配,女生选男生,选择的规则是可以选自己认可的也可以选自己的朋友(朋友的朋友,朋友的朋友的朋友)认可的。每轮可以选一个,并且下轮不能选已经被自己选过的。问最多可以玩几轮。 分析(建图): 因为一个团体可以选团体内任何人认可的人匹配,所以先并查集把团体分类,然后让内部每个女生都可以选团体可以选的男生,流量为1。 因为玩的轮数最多为n所以二分原创 2017-01-13 13:56:23 · 498 阅读 · 0 评论 -
HDU - 3605 Escape(最大流+状态压缩)
点击查看原题 题目大意: 有n个人m个星球,每个人都有自己中意的星球(可以多个),每个星球有居住的人数上限。问是否可以每个人都去到自己中意的星球。 分析: 看起来是裸的最大流问题,也果断交了一发(TLE,人数过多),上网参考了一下大牛的状态压缩想法,因为星球最多只有10个所以可以把每个人的状态看成是2^m。然后统计同一种方案的人数作为容量。 建图: 源点链接被选用了的方案 容量为选择人数原创 2017-01-13 13:44:07 · 401 阅读 · 0 评论 -
UVA 10480 Sabotage (最大流最小割输出路劲)
题目链接 题目大意:有n个城市m条路,没条路隔断都要花费钱,现在要隔断1和2之间的联系,问要使得花费最小要怎么割。 分析:可以先跑一遍最大流,然后用最小割定理,从源点bfs搜索不满流的边,组成集合属于源点集合,剩下的属于汇点,然后再找是否有#include<stdio.h>#include<string.h>#include<algorithm>#include<queue>#inclu原创 2016-12-14 14:37:22 · 533 阅读 · 0 评论 -
HDU 4289 Control (最大流最小割)
题目链接题目大意:有n个城市 m条无向边有一队恐怖分子要从某一城市到另一城市 打算在某些城市安放一些警察去抓住他 但若在某个城市安放警察需要一定费用问要抓到恐怖分子 最少的费用是多少? 分析:拆点,将费用当容量建图 拆开的点容量为费用,其他的连边容量为inf跑一遍最大流就可以得到最小割 因为最小割求的是割后不连通,于是只要割去满流的边就是最小割了。#include<stdio.h>#incl原创 2016-12-13 21:13:13 · 587 阅读 · 0 评论 -
Island Transport hdu 4280 (最大流 dinic)
题目 题目意思 有n个岛屿,岛屿会与其他岛屿相连接,每小时各个岛屿 间可运输的人有限,问从最东(左)到最西(右),每小时最多可以运多少人。 题目可分辨出是最大流问题,然而却卡dinic。T了无数次。把队列手写再加上一些优化7850ms卡过去,如果把vector换成数组领接表应该还能快上一些#include<stdio.h>#include<string.h>#include<vector>原创 2016-12-06 01:24:49 · 438 阅读 · 0 评论 -
POJ 2516 Minimum Cost(最小费用最大流)
题目链接 这题也是裸的暴力枚举最小费用最大流。 题目意思:有n个供应商,m个客户,k种物品,分别给出每个客户对物品的需求量,商家对物品的供给量,和费用,求能否满足每一个人的要求如果可以输出最小费用。 可以建k次图,枚举物品求最小费用最大流。 建图: 源点 到 商家 流量为存货量,费用为0 客户 到 汇点 流量为需求 ,费用为 0 商家 到客户 流量为inf ,费用为 题目所给 跑最小原创 2016-12-12 20:44:28 · 514 阅读 · 0 评论 -
最小费用最大流(模板)
#define MAXN 1005#define INF 2000000000int source,sink; //源点 汇点 struct tree{ int from,to,flow,worth,next; //结点,流量,费用,链表 tree(){} tree(int fr,int ro,int fl,int wo,int ne) { from=fr,to=ro,flo原创 2017-06-20 21:18:30 · 404 阅读 · 0 评论