- 2024-07-04二分图匹配——从入门到入土
基础知识形式化定义:二分图:\(G=(L,R,E)\),满足\(\forall(u,v)\inE\)都有\(u\inL,v\inR\)或\(u\inR,v\inL\)。可知“图中没有长度为奇数的环”是这个图是二分图的充分必要条件。图的匹配是一个\(E_m\subseteqE\)满足\(\nexistsi\inV(\text{当}G
- 2024-05-27网络流
最大流对于网络\(G=(V,E)\),给每条边指定流量,得到合适的流\(f\),使得\(f\)的流量尽可能大。此时我们称\(f\)是\(G\)的最大流。Dinic算法思想考虑在增广前先对\(G_f\)做BFS分层,即根据结点\(u\)到源点\(s\)的距离\(d(u)\)把结点分成若干层。令经过\(u\)
- 2024-04-12网络最大流(Dinic)
网络最大流Dinic算法代码笔记代码思路主体部分:构造分层图,找增广路(即bfs和dfs)辅助部分:当前弧优化(在bfs中进行重置,在dfs中进行更新)整合:首先是存图与主函数部分,通常还包括对问题的转换(也就是建图)。剩下的就是bfs和dfs。考虑bfs需要实现哪些功能:最主要地,它需要提供一个分
- 2024-04-02ABC347G 题题解
还算是比较经典了。首先我们注意到一个性质:\(1+3+\cdots+n=n^2\)。所以我们可以把平方拆开。然后容易证明\(a_{i,j}\)填\(1\)一定比填\(0\)不劣。我们可以把\(a_{i,j}\)拆成\(4\)个点,然后我们想到了最小割。构造网络:\(a_{i,j,x}\leftarrowa_{i,
- 2024-04-01网络流学习笔记
网络流的核心在于建图。建图建出来之后,剩下的基本上只是模板了。1基本定义一个网络是一张有向图\((V,E)\),其中每条边都有一个流量\(c(u,v)\)。一个网络有一个源点\(S\)和一个汇点\(T\)。网络流满足以下几条性质:流函数\(f:(x,y)\rightarrow\text{R}\)是一个二
- 2024-02-23P9901 『PG2』弯曲半平面直线同向图最大流 题解
思路正解想不出,只好用网络流了网络流简介请戳这儿。这道题数据有点大用EK求最大流似乎过不了,所以本蒟蒻采用Dinic算法。Dinic算法Dinic算法相当于EK的优化。在原基础找增广路的基础上添加了一个分层操作,再通过深搜找阻塞流。分层从原点开始我们把可以通过一步到达的
- 2024-02-05【板子】费用流(zkw/Dinic)
//lgp3381#include<bits/stdc++.h>usingnamespacestd;#definelllonglongconstintN=(int)5e3+3;constintM=(int)5e4+4;constllINF=0x3f3f3f3f;intcur[N];lldis[N];boolvis[N];boolinq[N];intedgeid=1;inthead[N];structedge{in
- 2024-02-05【板子】网络流(Dinic)
#include<bits/stdc++.h>usingnamespacestd;constintN=205;constintM=205;constintINF=0x3f3f3f3f;intedgeid=2;inthead[N];structedge{intv,w,nxt;}e[M*2];inlinevoidaddedge(intu,intv,intw){e[edgeid].v=v;e[ed
- 2024-02-04最大流
最大流问题有向图G中,有两个特殊的点,源点和汇点,每条边有指定的容量,求S到T的最大流。就像从源点放水,水量无穷大,汇点的水量是多少?定义c为容量,f为流量流量守恒\(f(x,y)\leqc(x,y)\)容量性质\(\sumf(u,x)=\sumf(x,u)\)斜对称性\(f(x,y)=-f(y,x)\)容量网络,流量网络
- 2023-12-08网络流最大流Dinic算法
感谢董晓老师:博客,b站/*Dinic算法的思路是,用bfs进行分层,限制后面dfs每次的搜索深度,并且,在dfs的过程中,直接把当前这个路走到u的容量限制分给u的各个出边*/#include<iostream>#include<algorithm>#include<cstring>#include<queue>usingnamespacestd;const
- 2023-10-12网络流笔记
前言粗略地讲一下吧,大概能理解就行理论部分借鉴了oi-wiki,有问题欢迎指出网络流网络是一个特殊有向图$G=(V,E)$,特殊在于有源点$s$和汇点$t$首先网络流图中每条边$(u,v)$都有一个容量$c(u,v)$介绍流函数$f(u,v)$,指$u$到$v$流量所以就会有流量守恒,即$0\leq
- 2023-09-07All Pairs Maximum Flow题解
前置知识:1.P3376【模板】网络最大流2.P4897【模板】最小割树(Gomory-HuTree)Ebola有一句很著名的话如果你乱搞过了我请你抽烟那么这道题肯定不能普通的dinic直接水过去,不然就不是紫题了,那么直接祭出最小割树,复杂度\(O(Tn^3m)\),但是因为dinic跑不满,所以是可以过的。
- 2023-07-27DINIC算法模板
//定义一个名为F的网络流:NetWorkFlowF(n,S,T);//复杂度V^2*EstructNetWorkFlow{structFlownode{intvi,id;intwi;};intS,T;constintinf=0x3f3f3f3f;std::vector<int>rk,cur;std::vector<std::vector<Flown
- 2023-06-02bzoj1001 [BeiJing2006]狼抓兔子(网络流dinic算法||最短路spfa)
http://www.lydsy.com/JudgeOnline/problem.php?id=10011001:[BeiJing2006]狼抓兔子TimeLimit: 15Sec MemoryLimit: 162MBSubmit: 24017 Solved: 6068[Submit][Status][Discuss]Description现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓
- 2023-04-052023.4.5 网络最大流 Dinic算法
网络最大流Dinic算法省选爆了qwq题目描述给出一个网络图,以及其源点和汇点,求出其网络最大流。网络流,就像水在一个水渠构成的网络中流一样,源点有无限的水,每条边有最大流量限制,求流到汇点的最大流量。更菜一点的EK算法自行了解,此处我们用dinic算法解决问题。这些网络流算法的
- 2023-02-08【LOJ101】最大流(Dinic)
problem给定n个点,m条边的有向图求源点s到汇点的最大流solution最大流模板,,不会看笔记吧。。。codes#include<iostream>#include<algorithm>#include<queue>#include<cstring>
- 2023-02-04dinic最大流
求解最大流主要有两种算法:增广路算法和预流推进算法增广路算法的本质是考虑“压榨”完残量网络中所有仍然有流量的边并记录答案。所以最基本的想法是递归搜索出所有与节
- 2023-01-26网络流32题
%%%wqldalao题目来自浅谈网络流的各种建模方法作为wqldalao的一点补充说明,不会太学术(蒟蒻也不会证明所有最大流算法均采用加了优化的Dinic,费用流为Dinic+spfa
- 2023-01-20【模板】网络最大流 Dinic(多路增广+当前弧优化)
#include<bits/stdc++.h>usingnamespacestd;constintN=5e5+5;constintM=1e6+5;constintMN=1e3+5;typedeflonglongll;inlineintread(){intx(0),f(0
- 2023-01-07Dinic的几种复杂度
学了那么久网络流才发现自己不知道Dinic算法的一个在各边容量均为\(1\)的网络时复杂度上的结论。我说为啥学术社区那题优化建图复杂度是对的呢……以下均认为使用了当
- 2022-11-272173. Dinic/ISAP求最小割
题目链接2173.Dinic/ISAP求最小割给定一个包含\(n\)个点\(m\)条边的有向图,并给定每条边的容量,边的容量非负。图中可能存在重边和自环。求从点\(S\)到点\(T\)的
- 2022-11-11Dinic(最大流/最小割+费用流)
最大流/最小割:1typedeflonglongll;2constintN=1e4+5;3constintM=2e5+5;4constllinf=1e18;5intn,m,s,t,tot;6llhead[N],to[
- 2022-08-29Jeffrey's ambition(Dinic板子题)
Jeffrey'sambition(网络流板子题)网路流的经典例题,会有两种需要匹配的东西,这两种东西直接可以构成一个二分图,这时候题目就会要求你求出最大匹配(水题)//要与这道Arranget