文章分类 -  算法蒟蒻 / 图论

摘要:【同余最短路】 【题目积累】 (板题)跳楼机 https://www.luogu.com.cn/problem/P3403 AC代码 本题最保险的做法是unsigned long long typedef pair<i64,int> PII; template<typename T> bool cm 阅读全文
posted @ 2025-11-11 00:52 White_ink 阅读(7) 评论(0) 推荐(0)
摘要:【连通性】 图的基本概念 图论基本定理 对于任何无向图\(G = (V, E)\),有\(\sum_{v \in V} d(v) = 2|E|\)(度数为边数的两倍)。 推论:在任意图中,度数为奇数的点必然有偶数个。 连通分量:无向图 对于一个不连通的无向图,它会被分割成多个极大连通子图,每个这样的 阅读全文
posted @ 2025-08-26 21:29 White_ink 阅读(19) 评论(0) 推荐(0)
摘要:【LCA】最近公共祖先 LCA(x,y) 模版代码 模版题 https://www.luogu.com.cn/problem/P3379 树上倍增 基础封装:针对无权图 把空间开到全局 struct Tree { int n; vector<vector<int>> ver, val; vector 阅读全文
posted @ 2025-08-15 15:04 White_ink 阅读(7) 评论(0) 推荐(0)
摘要:【树上模拟】 1-1-1, Free Tree! https://codeforces.com/contest/2126/problem/F 树很关键的一个优化点:父亲有且只有一个 ->将遍历出边O(n)优化到:遍历父亲O(1)/儿子(如果可以一起维护) 题目大意 思路 难点在于每次修改颜色之后需要 阅读全文
posted @ 2025-07-18 11:29 White_ink 阅读(47) 评论(0) 推荐(0)
摘要:【差分约束】 概念 题目会显性或隐性的给出一组约束条件(不等关系) ->转化为差分约束来解决 形如 求其中x[1],x[2],...x[n]的任意解/要么无解 ->最大解、最小解问题 求解逻辑 Bellman-Ford算法/SPFA算法 总结 (见https://www.zybuluo.com/DA 阅读全文
posted @ 2025-07-11 22:27 White_ink 阅读(15) 评论(0) 推荐(0)
摘要:【拓扑排序】 概念 每个节点的前置节点都在当前节点之前 要求 有向无环图 拓扑排序顺序可能不止一种 拓扑排序也可判断有无环 求拓扑序 (1)图中找到所有入度为0的点 (2)把所有入度为0的点在图中删掉,然后删掉影响 (3)直到所有点都没删掉->依次删除的顺序就是拓扑排序结果 (4)无法删掉所有点-> 阅读全文
posted @ 2025-07-01 21:05 White_ink 阅读(14) 评论(0) 推荐(0)
摘要:【分层图】 (参考https://www.cnblogs.com/ldyzzz/p/17632253.html) 使用场合 求解特殊最短路 N个点,M条边,允许对K条边进行改变(对权值进行改变:花费/2,花费变0之类的) 板子题 https://www.luogu.com.cn/problem/P4 阅读全文
posted @ 2025-06-26 00:38 White_ink 阅读(28) 评论(0) 推荐(0)
摘要:【树上前缀和】 Compare Tree Weights 【树链剖分+树状数组维护顶点前缀和】 https://atcoder.jp/contests/abc406/tasks/abc406_f #include<bits/stdc++.h> using namespace std; #define 阅读全文
posted @ 2025-05-18 07:59 White_ink 阅读(29) 评论(0) 推荐(0)
摘要:【树链剖分】 将树分割成多条链,然后利用数据结构(线段树、树状数组等)来维护这些链 阅读全文
posted @ 2025-05-17 22:07 White_ink 阅读(12) 评论(0) 推荐(0)
摘要:【图论基础题】 哎哎全是结论题大佬呜呜呜啊啊啊呜呜呜 画图可得 Tree Jumps https://codeforces.com/contest/2070/problem/D 思路 考虑单点贡献为上一层的贡献扣掉父节点贡献 最后将全部结点贡献相加即可 代码 #include<bits/stdc++ 阅读全文
posted @ 2025-03-01 20:43 White_ink 阅读(15) 评论(0) 推荐(0)
摘要:【DFS序(求子树)】 性质 入序和出序之间的编号是该节点的子树 ->叶节点的出序和入序编号相等 模版代码 int in[N],out[N];//in表示首次访问的编号,out表示访问结束的编号 bool st[N];//标记节点访问状态 int tim=0; void dfs(int u,int 阅读全文
posted @ 2025-01-29 12:12 White_ink 阅读(14) 评论(0) 推荐(0)
摘要:【严格次小生成树】 例题 https://fjnuacm.top/d/minor/p/308?tid=66fbd9a8703d6adf52ed9b0d 思路 阅读全文
posted @ 2025-01-21 01:07 White_ink 阅读(8) 评论(0) 推荐(0)
摘要:【树的直径】 求解方法 //搜索思路 (1)任选一点x,求出距离x最远的点y 然后再以y为起点,求出距离y最远的点的距离 //树形DP思路 (2)树的直径maxd就是所有节点往下走的最大距离与次大距离之和中的最大值 即maxd=max(dis1[i]+dis2[i]) (例题)旅游规划 https: 阅读全文
posted @ 2025-01-18 21:18 White_ink 阅读(39) 评论(0) 推荐(0)