对于图建立dfs树,这样只存在树边和B边,不会存在横叉边,这也是tarjan算法的思想 建立dfs树后,我们发现任意一条B边都会生成一个环,且所有b边就是所有环 我们进行dfs栈的建立,找到如果存在满足条件的环,那就直接输出 如果不存在,我们证明肯定存在满足条件的独立集。因为根据鸽巢定理,每个点一定 ...
分类:
其他好文 时间:
2020-07-19 23:50:26
阅读次数:
70
\(\color{blue} \text {【题目描述】}\) 一棵树,点编号1 . . . n,Q次询问编号[l, r]的点的导出子图中有几个连通块。 \(\color{blue}\text{【输入】}\) 第一行n, Q。 接下来n ? 1行每行两个数表示一条树边(u, v)。 接下来Q行每行两 ...
分类:
其他好文 时间:
2020-07-17 14:02:42
阅读次数:
81
如果只要求判断有没有解的话很好做:以条树边被两条非树边覆盖即可. 输出方案的话可以考虑碰到一条非树边就暴力覆盖. 如果覆盖的过程中发现一条边已经被覆盖了就输出结果. 由于一条边只能被一种非树边覆盖,所以复杂度均摊下来是 $O(n)$ 的. 然后我们就得到两条路径 $(a,b)$ 与 $(c,d)$, ...
分类:
其他好文 时间:
2020-07-16 12:02:17
阅读次数:
55
通常,矩阵树定理算出的生成树是边权乘积的和。 如果计算所有生成树边权和的和,比较暴力的方法就是枚举一条边,然后计算包含这条边的生成树个数。 这样的时间复杂度是$O(mn3)$的,最坏为$O(n3)$。 考虑优化: 对于一条边权为w的边,将边权设为关于x的多项式$1+wx$。 这样,容易证出,最后的一 ...
分类:
其他好文 时间:
2020-06-25 00:00:13
阅读次数:
181
题目描述 有一棵点数为 nnn 的树,树边有边权。给你一个在 $0 \sim n$ 之内的正整数 \(k\) ,你要在这棵树中选择 \(k\) 个点,将其染成黑色,并将其他 的 \(n-k\) 个点染成白色。将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间的距离的和的受益。问受益最大值是多 ...
分类:
其他好文 时间:
2020-06-16 23:21:34
阅读次数:
74
根据$[WC2011]XOR$的思路,每次暴力重构线性基,令$l'=\frac{l^{2}}{w}$,则有一个$nql'$的做法(这里线性基位数很多,所以要用bitset) 由于初始连通,因此每一个环一定可以由若干个[树边+1条非树边]的环构成(构成指异或),那么预处理出每一个操作的环大小,相当于维 ...
分类:
其他好文 时间:
2020-06-14 23:27:05
阅读次数:
61
决策树比较常用的算法模型,可以做分类也可以回归 决策树算法重点 对特征的选择,可以使用熵,也可以使用基尼系数,通过信息增益或者信息增益率选择最好的特征 决策树的剪枝,有两种策略,一种是预剪枝,一种是后剪枝,预剪枝可以通过限制树的高度,叶子节点个数,信息增益等进行,使得树边建立边剪枝,后剪枝通过增加损 ...
分类:
编程语言 时间:
2020-06-09 11:23:21
阅读次数:
76
对于有向图问题,如果能转化成dag那么就会好做很多,因为这题如果是dag,那么只要只存在一格出度为0的,就是答案 而强连通分量中的点都可以互达,所以进行tarjan缩点。 tarjan缩点的原理,分为四个边,树边,前向边,后向边,横叉边 dfn是时间戳,tarjan的栈中存的是祖先和已被遍历的并且能 ...
题意: 给定一个由 $n$ 个顶点构成的无向完全图,每次操作选出当前图中的一个生成树并删除(删去树边)。请问最多可以执行多少次操作?每次操作依次删除哪些边? "传送门" 分析: 按照折回的方法构造,即: $x\to x+1$ $x+1\to x 1$ $x 1\to x+2$ $x+2\to x 2 ...
分类:
其他好文 时间:
2020-05-10 23:10:26
阅读次数:
95
题目链接 分析: 还是很明白的题意,直接分析问题,首先,这一题真的是给spfa用武之地,m比n大不超过20,但是这并不能使暴力不t,我们考虑一下如何改进一下,我们这样想,这个图只比它的生成树多最多21条边,而树上的最短路有是那么的容易(lca),我们可以先求出在树上两个点之间的最短路,可是非树边也很 ...
分类:
其他好文 时间:
2020-05-08 19:52:43
阅读次数:
68