随笔分类 -  图论

摘要:最大流 题目要求:给出n点 m边 src sink 然后每条边有 u v capacity 求最大流 题目链接P3376 【模板】网络最大流 EK(Edmonds–Karp)算法: \[\begin{align} & \color{Red}时间复杂度O(nm^2) \\ & \color{Red}空 阅读全文
posted @ 2024-08-17 18:12 phrink 阅读(31) 评论(0) 推荐(0)
摘要:[P2740 USACO4.2] 草地排水Drainage Ditches) 大意:网络流模板 做法:EK增广路 #include <cstdio> #include <queue> #include <deque> #include <stack> #include <map> #include 阅读全文
posted @ 2024-08-17 18:10 phrink 阅读(17) 评论(0) 推荐(0)
摘要:最短路 弗洛伊德:全源最短路: \[\Large DP方程:\\ dp[i][j] = min(dp[i] [j],dp[i][k]+dp[k] [j]) \]#include <cstdio> #include <algorithm> #include <iostream> #include <c 阅读全文
posted @ 2024-08-16 22:10 phrink 阅读(25) 评论(0) 推荐(0)
摘要:2-Sat \[\begin{align*} &\LARGE\color{Red}大意:\\ &有n个数a_i,m个约束条件都需要满足\\ &条件形如(i,a,j,b) \quad a_i=a \ \text{or} \ a_j=b\\\\\\ &\LARGE\color{Red}思路:\\ &让a 阅读全文
posted @ 2024-08-16 20:41 phrink 阅读(22) 评论(0) 推荐(0)
摘要:P3388 【模板】割点 Note:图可能不联通,因此每次tarjan都要更新root #include <cstdio> #include <stack> #include <cmath> #include <algorithm> #include <iostream> #include <cst 阅读全文
posted @ 2024-08-16 20:38 phrink 阅读(21) 评论(0) 推荐(0)
摘要:[P2746 USACO5.3] 校园网Network of Schools 大意:一个图 可能有环 a:求deg入度为0的点的个数 b:至少加多少条边让图所有点可以互相到达 思路:看代码 #include <cstdio> #include <queue> #include <deque> #in 阅读全文
posted @ 2024-08-16 20:34 phrink 阅读(21) 评论(0) 推荐(0)
摘要:P5782 [POI2001] 和平委员会 大意:n个集合 每个集合有两个点i,i+1 一共2n个点 每个集合选一个点到另一个空集 S 里面 有m个约束条件 i和j不能在一起 求可行的集合S 思路:2-sat 对i j而言 建图(i,j邻居) 和(j,i的邻居),邻居就是他们所属的集合的另一个点 然 阅读全文
posted @ 2024-08-15 17:36 phrink 阅读(31) 评论(0) 推荐(0)
摘要:P4171 [JSOI2010] 满汉全席 - 洛谷 大意:n个点 m个条件 形如m1,h32,满足n个条件 思路:2-sat 让m=0,h=1 ,然后转换为i m j h的建图,注意傻逼题目的数字可能是多位数 不能直接x[1]-'0' #include <cstdio> #include <sta 阅读全文
posted @ 2024-08-15 16:59 phrink 阅读(37) 评论(0) 推荐(0)
摘要:两种算法Prim and Kruskal Prim: 使用链式前项星 从根节点root开始加点直到加完所有点 dist[u] 表示从已经包含在 MST 中的节点到节点 u 的最小边权值 #include <cstdio> #include <queue> #include <deque> #incl 阅读全文
posted @ 2024-08-15 00:14 phrink 阅读(28) 评论(0) 推荐(0)
摘要:P3387 【模板】缩点 大意:n个图,m条边,每个点都有值a[i],求路径经过的点权值之和最大 思路:因为会出现环 Tarjan 求scc 记录din dout 然后拓扑排序,dp[v]是经过v点的最大值,每经过一个点就记录经过他的最大值 然后取max #include <cstdio> #inc 阅读全文
posted @ 2024-08-11 00:03 phrink 阅读(25) 评论(0) 推荐(0)
摘要:[P2812 校园网络【USACO]Network of Schools加强版 大意:1.图G=(V,E)选几个点可以到达所有的点 2.连多少条边可以让任意一个点出发到达其他所有点1 思路:1.Tarjan 跑一遍求SCC 那些出度为0的点就是出发的所有点 即din0的点的数量 2.计算dout0的 阅读全文
posted @ 2024-08-10 23:11 phrink 阅读(25) 评论(0) 推荐(0)
摘要:[P2341 USACO03FALL / HAOI2006] 受欢迎的牛 G 大意:其他所有点通过其他的scc到达图中存在的某个scc,那么输出这个scc的点的数量 思路:Tarjan求SCC,然后看每个scc的出度dout,如果有两个scc的dout=0,说明这两个scc不能到达,不满足要求,否则 阅读全文
posted @ 2024-08-10 23:02 phrink 阅读(30) 评论(0) 推荐(0)
摘要:\[\Large 给出一个图,求出SCC后缩点得到新的图 \]做法:Tarjan 记录scc 然后根据SCC去重新建图 #include <cstdio> #include <stack> #include <algorithm> #include <iostream> #include <cstr 阅读全文
posted @ 2024-08-10 21:48 phrink 阅读(20) 评论(0) 推荐(0)
摘要:1583Problem - B - Codeforces 题目大意:n个点的无根树 给出m个限制条件 (a,c,b)在a到b路径上不能存在c点,求任意一种可能的树的所有边 注意数据范围:1<m<n<1e5 这说明了最多有n-1个限制条件 这说明至少有一个点不存在限制条件 即这个点可以作为根节点roo 阅读全文
posted @ 2024-08-04 22:58 phrink 阅读(50) 评论(0) 推荐(0)
摘要:CF1822F-Problem - F - Codeforces 题目大意:无根树的每条边为k,定义操作:移动根节点为把当前的根ROOT移动到相邻节点,每次代价为c, 定义成本=从ROOT出发到达的最长的路径的长度,利润=成本-代价,求利润最大值 \[\begin{align} &\huge\col 阅读全文
posted @ 2024-08-04 21:44 phrink 阅读(34) 评论(0) 推荐(0)