图论
文章平均质量分 74
QuteMelon
这个作者很懒,什么都没留下…
展开
-
2021ICPC 昆明区域赛 B.Chessboard(上下界最小费用最大流)
建图:1. 默认当前所有网格都为白色(方便处理),因为如果考虑当前网格都是空的话,那么行列一共有白黑两种选择,就不好处理上下界的流量限制了)。2. 按1处理后,将行列分别视为点 i,ji,ji,j: 行列建边:撤销白色的方块: 因为1中默认所有网格都为白色,所以需要有一条边进行撤销add(j,i,1,sw[i][j])add(j , i, 1, sw[i][j])add(j,i,1,sw[i][j])涂黑色的方块: 因为可以将方块变成黑色,所以需要有一条边用于涂黑add(i,j,1,sb[原创 2021-04-08 14:58:55 · 946 阅读 · 3 评论 -
图论算法模板整理
文章目录网络流Dinic(最大流/最小割)最小费用最大流有源汇的上下界网络流一些模型可以用网络流解决的最大权闭合子图、最大密度子图2-SAT2-SAT的判断存在性问题/给出一组合法解tarjan解的构造具有要求/字典序最小DFS判断2-SAT生成树问题最小生成树次小生成树Kruskal 重构树最短路K短路(A star 和可持久化左偏树维护)网络流Dinic(最大流/最小割)#include <iostream>#include <algorithm>#include &l原创 2021-03-23 15:15:40 · 391 阅读 · 0 评论 -
【最大权闭合子图、最大密度子图】最小割应用
最大权闭合子图闭合图有一点点序关系(?),例如要做这件事,必须先完成前面的事情(类似于拓扑序的结构?)例如 Luogu P2805 NOI 2009 植物大战僵尸,该题中僵尸攻击植物的次序具备一个拓扑序结构,即先攻击一些植物后才能攻击另外的一些植物,有点类似于闭合图。最大权闭合图一般用网络流求解: 建图的思路: 统计出正权点,负权点,源点向正权点uuu链接s→u,f=w[u]s \rightarrow u,f = w[u]s→u,f=w[u],负权点vvv链接v→t,f=−w[v原创 2021-03-02 21:48:19 · 185 阅读 · 0 评论 -
上下界网络流 HihoCoder 1424 (C) Asa‘s Chess Problem
题意: 棋盘上有黑白棋子,给出一些限制行列黑色棋子数量,棋盘中有一些<u,v><u,v><u,v>对可以进行交换(其中这些u,vu,vu,v对,一定保证有行相同或者列相同)因为数据范围+限制条件,其实蛮容易想到使用网络流的(上下界网络流),然后把行列分别看成点,行列连汇点的流量限制为最终行列的黑色棋子的限制。源点连向行列就是一开始行列所拥有的黑色棋子数量,最后就是考虑交换的问题了。如果颜色相同,则没必要考虑交换,因为没有影响。如果颜色不同,交换会对行列黑色棋子数量进原创 2021-03-02 21:06:57 · 132 阅读 · 0 评论 -
uva11354-最小生成树+无根树转有根树+LCA
#include <bits/stdc++.h>using namespace std;const int maxn = 1e5+5;int pre[maxn];int Findpre(int x){return pre[x]==x? x : Findpre(pre[x]);}struct MSTEdge{ int u,v,w; bool operator &...原创 2019-11-11 19:42:58 · 240 阅读 · 0 评论 -
差分约束系统
差分约束系统概念: 差分约束系统是特殊的n元一次不等式组,它包含NNN个变量,x1−xnx_1 - x_nx1−xn以及mmm个约束条件,每一个约束条件由两个变量作差构成的,类似于xi−xj≤akx_i-x_j \leq a_kxi−xj≤ak,需要解决的问题是找到一组解,使得给出的约束条件得到满足。如何解决差分约束系统 -> 最短路算法现在已知B−A≤cB - A \le...原创 2019-10-23 19:52:50 · 184 阅读 · 0 评论 -
tarjan算法题目练习(长期更新)
P2002 消息扩散题目描述有n个城市,中间有单向道路连接,消息会沿着道路扩散,现在给出n个城市及其之间的道路,问至少需要在几个城市发布消息才能让这所有n个城市都得到消息。tarjan缩点(因为一个强连通分量内的点只要又一个传到了其他点都传到了,所以可以缩成一个点),然后重新建图,统计out[i]为0的点的数量#include <iostream>#include <a...原创 2019-09-26 18:17:22 · 595 阅读 · 0 评论 -
【模板】2-sat问题的讨论与分析(包含一些2-sat题目)
2-SAT定义:即给定一些布尔方程,每个变量只能为truetruetrue or falsefalsefalse要求对这些变量进行赋值,满足布尔方程。简单来说就是离散数学中的布尔方程例如: (¬a∨b∨¬c)∧(a∨b∨¬c)∧(¬a∨¬b∨c)(¬a∨b∨¬c)∧(a∨b∨¬c)∧(¬a∨¬b∨c)(¬a∨b∨¬c)∧(a∨b∨¬c)∧(¬a∨¬b∨c)现在要做的是,为 ABC 三个变量...原创 2019-10-10 10:46:32 · 273 阅读 · 0 评论 -
【图论算法】 最短路,次短路,k短路总结
在图论里,最短路,次短路,k短路的问题很常见。这里总结一下。存图技巧数据小,稠密图的一般用邻接矩阵稀疏图,数据大一般用邻接表(vector,链式前向星都可)邻接矩阵const int maxn = 1e5+5;int Graph[maxn][maxn]; // 正权图可以初始化成-1来判断是否连通,负权图可以再考虑开个数组或者用一个很大的值。链式前向星const int max...原创 2019-10-11 19:17:21 · 1405 阅读 · 2 评论