Lomsat gelral CodeForces - 600E 题意:给你一个树,每个节点有一个颜色,求每个节点出现次数最大颜色编号和。 考虑每个点都必然有多颗子树,统计该点的答案时必然要合并多个子树。 启发式合并就是把小的往大的合并,这样保证log(n)的复杂度。 这个题考虑这样做法: 对于每一个 ...
分类:
其他好文 时间:
2020-04-28 00:47:46
阅读次数:
58
后缀自动机基本应用 对询问串建起后缀自动机,然后建起parent树,做一次子树统计就知道了每个节点代表的字符串出现次数 接下来我们只考虑出现次数等于$k$的那些点,对于任意一个点$p$我们知道他代表的子串长度是连续的,长度范围在$[len_{fa}+1,len_{p}]$之间,那么我们做个差分,最后 ...
分类:
其他好文 时间:
2019-07-03 20:14:29
阅读次数:
115
点分治模板题。 男人必做八题。 每棵子树统计经过根节点的满足情况个数,再减去子树中不经过根节点的情况个数,类似于一个容斥。复杂度O(Nlog^2N) 注意每次getroot所定的树的大小是改变的,不能一直是n否则会退化。 By:大奕哥 ...
分类:
其他好文 时间:
2017-12-22 20:46:57
阅读次数:
120
FFT套CDQ分治 HDU5730 dsu on tree 链统计/子树统计 无修区间统计离线处理 GSS2 O(1) 序列顺序维护问题 // 找不到那个课件了…… 后缀三连 后缀数组/后缀自动机/后缀平衡树 回文二连 manacher/回文自动机 字符串匹配四连 hash/kmp/AC自动机/tr ...
分类:
编程语言 时间:
2017-11-27 21:41:47
阅读次数:
166
题目链接:点这里 题解: 需要证明,所求的路径一定是全部权值都为1或者,路径上权值至多有一个为2其余为1且权值2在路径中央。 然后树形DP 设定dp[i][0/1] 以1为根的情况下,以i 节点下子树走分别全1和 走一次2和剩余全走1 的最长链 每遍历一次子树,统计一次答案 下面给出代码 #incl ...
分类:
其他好文 时间:
2017-08-06 20:39:53
阅读次数:
318
题目大意:给出一棵树。将树中的一个节点去掉之后,这棵树会分裂成一些联通块。求去掉哪些点之后。全部联通块的大小不超过全部节点的一半。并按顺序输出。 思路:基础的子树统计问题,仅仅要深搜一遍就能够出解。这个步骤和求树的重心非常像,是树分治的基础。 CODE: #include <cstdio> #inc ...
分类:
其他好文 时间:
2017-05-20 14:25:59
阅读次数:
88
我也不知道为啥这要起这名,完完全全没看到并查集的影子啊…… 实际上原理就是一个树上的启发式合并。 特点是可以在$O(nlogn)$的时间复杂度内完成对无修改的子树的统计,复杂度优于莫队算法。 局限性也很明显:1.不能支持修改 2.只能支持子树统计,不能链上统计。(链上统计你不能直接树剖吗?) 那么它 ...
分类:
其他好文 时间:
2017-05-07 23:15:37
阅读次数:
449
要求:二叉树以lson-rson链接方式存储,以菜单方式设计并完成功能任务:建立并存储树、输出前序遍历结果、输出中序遍历结果、输出后序遍历结果、交换左右子树、统计高度,其中对于中序、后序的遍历运算要求采用非递归方式。代码利用C语言描述。//作者:兰州大学13级计算机系hsy//时间:2015.6.1//编程环境:win7-64,codeblocks,GUN-GCC编译器#include#inclu...
分类:
其他好文 时间:
2016-05-12 16:40:06
阅读次数:
388
题目大意:给出一棵树,将树中的一个节点去掉之后,这棵树会分裂成一些联通块,求去掉哪些点之后,所有联通块的大小不超过所有节点的一半,并按顺序输出。
思路:基础的子树统计问题,只要深搜一遍就可以出解。这个步骤和求树的重心很像,是树分治的基础。
CODE:
#include
#include
#include
#include
#define MAX 10010
u...
分类:
其他好文 时间:
2014-10-12 12:07:57
阅读次数:
168