网络流
Dream-chasing ant
鄙人水平不高,建立博客初心只是想留一份回忆给自己。
展开
-
二分图的定义及判定
二分图又称二部图,是图论中的一种特殊的模型。设G=(V,E)是一个无向图,如果顶点V可以分割成两个互不相交的子集(A,B),并且图中的每一条边(i,j)所关联的两个顶点分别属于A、B这两个顶点集,则称图G为一个二分图。二分图的充要条件:G至少有两个顶点,且所有回路的长度均为偶数。二分图的判定:在图中给每个顶点染色,把相邻的顶点染成不同颜色的问题叫做图的着色问题。对图进行染色所需要的最小颜...原创 2020-03-28 23:07:42 · 434 阅读 · 0 评论 -
P2762 太空飞行计划问题
文章目录思路传送门24题中的第7题,本题为最大权闭合子图问题思路最大权闭合子图本题输入比较麻烦还有一个是输出,被割的部分dis[i]一定为0,则dis[i]>0,就是要选择的。#include <iostream>#include <string.h>#include <stdio.h>#include <algorithm>#include <queue>#define inf 0x3f3f3f3fusin原创 2020-07-21 16:40:13 · 94 阅读 · 0 评论 -
最大权闭合子图
文章目录定义做法[P2762 太空飞行计划问题](https://www.luogu.com.cn/problem/P2762)定义闭合图:存在一个有向图G,存在点集合V,任取点u属于属于V,u的出边另一个点也属于V,则为闭合图。也就是起点是任意点,终点一定是出度为0的点。最大权闭合图也就是点权之和最大的闭合图最小割:将图切割成两部分时,代价最小的割的集合,代价就是边上容量的和。当一个图被分割成两个部分时,不再存在S到T的通路。做法建立源点、汇点,s、t所有点权为正的点i,建边s-&g原创 2020-07-21 16:32:35 · 195 阅读 · 0 评论 -
P3254 圆桌问题
第5题,与试题库问题的建模相同传送门#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <queue>#define inf 0x3f3f3f3fusing namespace std;const int N=6e5+5;struct node{ int v,cap,to;}s[N];int cnt.原创 2020-07-21 09:40:07 · 74 阅读 · 0 评论 -
P2764 最小路径覆盖问题
文章目录前言定义定理证明前言我做24题的第六题,输出路径还是有点糊涂定义给定有向图G=(V,E),设P是图G上若干点不相交的简单路径的集合,若每个点v属于V都存在于唯一一条P中的路径上,则P是G的一条路径覆盖。路径数量最少的路径覆盖称为最小路径覆盖。用MinPC(G)表示图G的最小路径覆盖数.有向无环图的最小路径覆盖问题可转化为二分图的最大匹配问题。给定有向无环图G=(V,E),设V={1,2,…,n},将点i属于V拆成xi、yi两个点,若(i,j)属于E,则连一条无向边(xi,yi)。得到原创 2020-07-21 09:35:38 · 189 阅读 · 0 评论 -
P2763 试题库问题
传送门这是第4道题,昨天晚上可能脑子不太清醒,所以好几个小时都没做出来。今天上午看了一下题,理了理思路,独立作出,很开心。题意输入得理一理,题倒是不难。思路:k个类型的题目,分别有多少道题,那么我们连源点的时候,cap就用这个值,依照输入将题目类型和每一道题连起来,每道题和汇点两连接起来。如果最大流的值等于选出的总题数,那么就有解决方案;如果小于,则没有解决方案;由于源点和题目类型的连接,所以最大流不可能大于。#include <iostream>#include <strin原创 2020-07-18 11:30:46 · 92 阅读 · 0 评论 -
P2756 飞行员配对方案问题
传送门第三题,特判,答案不唯一#include <iostream>#include <string.h>#include <stdio.h>#include <algorithm>#include <queue>#define inf 0x3f3f3f3fusing namespace std;const int N=6e4+5;struct node{ int v,cap,to;}s[N];int pre[原创 2020-07-17 21:05:57 · 117 阅读 · 0 评论 -
转换对偶图
文章目录对偶图定义特点对偶图定义将单连通平面多边形分割成若干个三角形。在每个三角形内部标记一个点将点连接起来,有相邻公共边的三角形内部的点相连特点没有圈构成最小生成树边数一样(顶点个数-1)一定有至少两个节点是端点传送门传送门...原创 2020-07-16 15:35:05 · 260 阅读 · 0 评论 -
P1402 酒店之王
传送门这是一道二分图的题,我用Dinic做的,主要的难度就是在于建模。由于房间和菜品都只能用一次,将源汇点分别与房间和菜品相连接。将每个人分开,分别连一下即可。#include <iostream>#include <string.h>#include <stdio.h>#include <algorithm>#include <queue>#define inf 0x3f3f3f3fusing namespace std;原创 2020-07-16 11:15:13 · 124 阅读 · 0 评论 -
二分图最大匹配
文章目录二分图定义充分必要条件性质判定二分图最大匹配定义增广路概念特点匈牙利算法最小点覆盖定义最小边覆盖最大独立集定义二分图定义图论中的一种特殊的模型。设G=(V,E)是一个无向图,如果顶点V可以分割为两个不想交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G是一个二分图。充分必要条件G至少有两个顶点,且其所有回路长度均为偶数。性质最大匹配数=最小覆盖数二分图的独立数=顶点数-最大匹配数最大匹配数原创 2020-07-15 23:01:21 · 426 阅读 · 0 评论 -
P1251 餐巾计划问题
传送门这是第二道题,比第一道题难想,主要是建图。题目中说到,每天结束时,餐厅必须决定将多少块脏的餐巾送到快洗部,多少块餐巾送到慢洗部,以及多少块保存起来延期送洗。一天有两种情况,白天干净的餐巾,晚上脏的餐巾,所以将一个点拆成两个点,一个是脏餐巾,一个是干净餐巾。源点连接脏餐巾数,汇点连干净餐巾书(这点未能搞清楚)。#include<cstdio>#include<cstring>#include<algorithm>#include<queue>原创 2020-07-15 21:09:32 · 128 阅读 · 0 评论 -
P4015 运输问题
文章目录传送门yyc大佬对我说,网络流更应该注重对模型的学习,推荐给我网络流24题这是第一题,加油,奥利给!!!题意:m个仓库,n个零售商店。第i个仓库有a[i]个单位的货物,第j个零售商店需要b[j]个单位的货物。从第i个仓库到第j个零售商店的单位费用为cij。问运输方式,求最小运输费用和最大运输费用。思路:单位费用,想最小费用最大流。第二个点就是a[i]单位货物和零售商店只需要b[i]单位的货物。这算是一个限制条件吧,我们应该如何转化呢。而且此时我们还没有源点和汇点。我们自己建一个原创 2020-07-15 16:03:48 · 250 阅读 · 0 评论 -
费用流
文章目录费用流问题费用流费用流就是在网络流的基础上,给每条边都加上了费用cost.网络流的总费用是该边的费用乘以流量问题最大流最小费用问题:给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用。模板题#include<cstdio>#include<cstring>#include<algorithm>#include<queue>using namespace std;原创 2020-07-15 11:27:48 · 190 阅读 · 0 评论 -
最大流
文章目录裸题dinic的实现Dinic算法框架流函数残量网络反向边分层图做法优化当前弧优化多路增广炸点最大流最小割定理裸题裸题:n个点m条边组成的有向图,每个节点代表一个水管节点,每条边代表一条管道。每条边有一个边权代表这条边的水容量。求s到t的最大水流量dinic的实现Dinic算法框架在残量网络上BFS求出节点的层次,构造分层图在分层图上寻找增广路,在回溯时同时更新边权流函数把f(x,y)称为流量,则称f为流函数,满足三个性质:1.容量限制:每条边的流量不能超过该边的流量2原创 2020-07-13 15:17:50 · 452 阅读 · 0 评论