• 2024-10-10最大流 dinic算法
    洛谷P3376#include<iostream>#include<cstring>#include<algorithm>#include<map>#include<vector>#include<queue>#include<numeric>#include<functional>#include<set>#include<cmath>#in
  • 2024-10-07LCT 优化 Dinic
    我觉得这东西有必要记一下,因为光是看PPT很难自己写出代码……具体步骤相关啥都没写。另外学这个东西也不是很必要……Solution我们需要一个维护最小值、最小值编号,支持区间加的LCT。需要支持以下操作:\(find\_root(u)\)\(link(u,v)\)\(cut(u,v)\)\(find\_min(v)\)\(add
  • 2024-09-059月做题纪要
    9.3/9.4P3376【模板】网络最大流因为Dinic对于求最大流是比较优的算法,考虑对Dinic进行一个复习Dinic属于Ford-Fulkerson增广路算法,每次增广前我们都先用BFS将图分层,每个点的层数都是其距离源点的最短距离求解思路如下:对原图进行BFS构建分层图考虑EK算法的
  • 2024-09-03有源汇上下界最大流
    对于题目给的图\(G\),我们添加一条边\((t,s)\)转化成\(G_1\),对\(G_1\)求无源汇上下界可行流,添加虚拟源汇点\(S,T\)得到的图是\(G_2\),对\(G_2\)跑dinic,此时得到的最大流\(f\)满足\(S\)的每条出边都是满的,\(T\)的每条入边都是满的,\(f\)诱导出的\(G_2\)的残存网络为\(G_3\),在\(G_3\)中
  • 2024-09-02Dinic/ISAP求最大流
    算法执行过程见蓝书和OI-wiki,当前弧优化见OI-wiki的描述,代码见下#include<bits/stdc++.h>#definelllonglongusingnamespacestd;constintN=10010,M=100010,inf=1<<29;intnow[N],End[M<<1],Next[M<<1],Len[M<<1],Last[N];intn,m,s,t,cnt=1,d[N];llmax
  • 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\)的网络时复杂度上的结论。我说为啥学术社区那题优化建图复杂度是对的呢……以下均认为使用了当