
图论
文章平均质量分 50
jesHrz
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
网络流 模板
Dinic+当前弧优化 O(n^2m) 链式前向星的下标要从偶数开始,head初始化为-1 const int N = 105; struct edge { int to, next, flow; }e[N*N*2]; int cnt, head[N]; namespace MaxFlow { int cur[N], depth[N]; int dfs(int u, int ...原创 2018-08-11 15:04:00 · 124 阅读 · 0 评论 -
LCA倍增 模板
LCA倍增 最近公共祖先 构造 NlogN 查询 ogN 先调用pre()构造对数数组 再调用dfs(root, 0, 0)查询深度 再调用work()构造跳表 最后调用lca(u, v)查询在有根树中节点u和v的最近公共祖先 const int N = 10005; struct edge { int to, next; } e[N << 1]; int n, head[...原创 2018-08-08 13:56:00 · 142 阅读 · 0 评论 -
Straight Master Gym-101775J (差分)
题目来源 Straight Master 题意 有n种扑克牌,每种扑克牌有ai张,每次可以打出3到5张连续的牌作为顺子,问这副牌能不能用顺子全打出来 思路 换一个思路,给定一个长度为0的序列,每次可以选择长度为3,4,5的区间并将这个区间内的数全部加一,最终可以得到一个新的序列,问这个序列的每个数分别是多少,这个序列就是给定的n种扑克牌。 对于这个问题,可以用差分的思想,对于区间[L, ...原创 2018-08-02 11:21:00 · 196 阅读 · 0 评论 -
A Walk Through the Forest HDU - 1142(Dij+记忆化搜索)
题目来源: A Walk Through the Forest 题意 你要从编号为1的办公室回到编号为2的家里,每次移动只会从当前点移动到 到家的最短路小于当前点到家的最短路 的点上,问一共有多少种回家的路线 思路 先求出所有点到家的最短路,然后进行搜索。暴力搜索会超时,考虑记忆化搜索。数组f[i]记录当前点回到家的路线条数,对于当前点u来说f[u]=所有与u相邻接的点的f值的和。求和的过...原创 2018-07-27 19:53:00 · 134 阅读 · 0 评论 -
Candies POJ - 3159(差分约束+栈优化SPFA)
题目来源: Candies 题意 现在给n个小朋友分糖果,给出m条语句A B C表示小朋友A认为给B的糖果不能比自己多C(可以等于C),问小朋友N与小朋友1的糖果数量差最少是多少 思路 给出的m条语句表示的意思写成数学语言为给A的糖果数和给B的糖果数满足B-A<=C。这就变成了典型的差分约束系统,可以从点B到点A建立一条权值为c的有向边,最终要求的即为点N到点1的最短路。 这个题如果...原创 2018-07-27 19:43:00 · 190 阅读 · 0 评论 -
最短路 模板
堆优化的Dijkstra NlogN 邻接表 #include &lt;utility&gt; #include &lt;queue&gt; typedef std::pair&lt;int, int&gt; P; //first为点的编号, second为边的权值 const int N = 100005; int dis[N]; vector&lt;P&gt;e[N];原创 2019-02-27 18:21:41 · 242 阅读 · 0 评论 -
Bridges Gym - 100712H (Tarjan缩点)
题目来源: 2015 ACM Amman Collegiate Programming Contest Statement An edge in an undirected graph is a bridgeif after removing it the graph will be disconnected. Given an undirected connected graph, yo...原创 2018-07-24 11:21:00 · 201 阅读 · 0 评论