link #思路: 经典套路,通过dfs序将树上修改转化为线性修改,这样问题就转化为了单点修改,区间查询,用树状数组维护。 类似题 #代码: #pragma GCC optimize(2) #include<bits/stdc++.h> using namespace std; typedef lo ...
分类:
移动开发 时间:
2021-06-15 17:41:05
阅读次数:
0
Link Cut Centroids Fishing Prince loves trees, and he especially loves trees with only one centroid. The tree is a connected graph without cycles. A v ...
分类:
其他好文 时间:
2020-09-24 21:11:56
阅读次数:
36
因为很多算法思想都基于递归,无论是DFS、树的遍历、分治算法、动态规划等都是递归思想的应用。学会了用递归来解决问题的这种思维方式,再去学习其他的算法思想,无疑是事半功倍的。 递归的本质 无可奈何花落去,似曾相识燕归来。 递归,去的过程叫“递” ,回来的过程叫“归”。 探究递归的本质要从计算机语言的本 ...
分类:
其他好文 时间:
2020-09-18 17:18:38
阅读次数:
36
参考了这篇文章. 无向图的DFS树 在DFS树上的边称为树边。 对于非树边 \((u,v)\),如果 \(v\) 是 \(u\) 在DFS树上的祖先,称它为后向边;如果 \(v\) 是 \(u\) 在DFS树上的后裔,称它为前向边。 易证,无向图没有横叉边。 非树边一定不是桥。边 \((u,v)\) ...
分类:
其他好文 时间:
2020-08-28 14:36:25
阅读次数:
90
对于图建立dfs树,这样只存在树边和B边,不会存在横叉边,这也是tarjan算法的思想 建立dfs树后,我们发现任意一条B边都会生成一个环,且所有b边就是所有环 我们进行dfs栈的建立,找到如果存在满足条件的环,那就直接输出 如果不存在,我们证明肯定存在满足条件的独立集。因为根据鸽巢定理,每个点一定 ...
分类:
其他好文 时间:
2020-07-19 23:50:26
阅读次数:
70
如果只要求判断有没有解的话很好做:以条树边被两条非树边覆盖即可. 输出方案的话可以考虑碰到一条非树边就暴力覆盖. 如果覆盖的过程中发现一条边已经被覆盖了就输出结果. 由于一条边只能被一种非树边覆盖,所以复杂度均摊下来是 $O(n)$ 的. 然后我们就得到两条路径 $(a,b)$ 与 $(c,d)$, ...
分类:
其他好文 时间:
2020-07-16 12:02:17
阅读次数:
55
F. Ehab's Last Theorem 题意 给出一个 n 个顶点,m 条无向边的连通图,现在你可以选择以下两个问题中的一个问题解决。 找到一个大小为 $? \sqrt ?$的独立点集 找到一个大小最少为为$? \sqrt ?$ 的简单环 思路 本题需要学习DFS树 在 DFS 的时候如果遇到 ...
分类:
其他好文 时间:
2020-07-13 09:34:35
阅读次数:
64
Description 传送门 Solution 注意到$DFS$的时候每次选择一个$DFS$树的子树后必然会走所有子树中的节点,所以原问题变成所有子树内的顺序乘子树外的顺序。 这样可以将还没有经过的节点状压,进行记忆化搜索。$DFS$树的子树个数就是去掉当前点之后的连通块个数,用并查集维护即可。 ...
分类:
其他好文 时间:
2020-07-07 13:32:39
阅读次数:
62
这题的强化版 1325F 题目里很友好的给了一个结论:对于任何一张n个点的无向图,任何一个k<=n,图中要么有大小不超过k的环,要么有大小为ceil(k/2)的独立集 证明很简单: 我们先定义单元环:环上的点的度数都为2 对于任意一个单元环,其大小如果超过k,那么必有>=ceil(k/2)的独立集 ...
分类:
其他好文 时间:
2020-06-15 22:52:02
阅读次数:
88
支配树 (一下的节点大小比较默认为dfs序的大小) idom支配点——s->t的必经点 sdom半支配点 半支配点 $sdom[w]$为能到达w点的v的最小值,要求路径上处理起点终点外所有点大于w 性质: 半支配点唯一 半支配点一定是dfs树上的祖先 任意点w(w不等于起点s)的支配点是该节点半支配 ...
分类:
其他好文 时间:
2020-05-29 20:58:16
阅读次数:
55