题意:有一棵树,对于每个点求子树中离他深度最多的深度是多少, 题解:线段树合并快如闪电,每个节点开一个权值线段树,递归时合并即可,然后维护区间最多的是哪个权值,到x的深度就是到根的深度减去x到根的深度复杂度O(nlogn) // pragma comment(linker, "/stack:2000 ...
分类:
其他好文 时间:
2018-07-20 00:17:27
阅读次数:
216
雨天的尾巴 bzoj-3307 题目大意:N个点,形成一个树状结构。有M次发放,每次选择两个点x,y对于x到y的路径上(含x,y)每个点发一袋Z类型的物品。完成所有发放后,每个点存放最多的是哪种物品。 想法:我们像主席树一样,维护桶然后对应节点合并即可。 最后,附上丑陋的代码... ... 小结:当 ...
分类:
其他好文 时间:
2018-07-20 00:15:34
阅读次数:
196
Problem "题目链接" 题目大意:给定一个字符串,每次取出出现至少两次的子串替换原串,问最多能替换多少次,输出答案加一(字符串长为$2×10^5$) Solution 前置技能:SAM、线段树合并、dp 首先可以想到一个dp(设t为在s中出现至少两次的子串):$dp[s]=\max\{dp[t ...
分类:
其他好文 时间:
2018-06-26 19:30:30
阅读次数:
176
题目链接 "loj2537" 题解 观察题目的式子似乎没有什么意义,我们考虑计算出每一种权值的概率 先离散化一下权值 显然可以设一个$dp$,设$f[i][j]$表示$i$节点权值为$j$的概率 如果$i$是叶节点显然 如果$i$只有一个儿子直接继承即可 如果$i$有两个儿子,对于儿子$x$,设另一 ...
分类:
其他好文 时间:
2018-06-22 20:35:58
阅读次数:
241
题目链接 "CF600E" 题解 容易想到就是线段树合并,维护每个权值区间出现的最大值以及最大值位置之和即可 对于每个节点合并一下两个子节点的信息 要注意叶子节点信息的合并和非叶节点信息的合并是不一样的 由于合并不比逐个插入复杂度高,所以应是$O(nlogn)$的 C++ include inclu ...
分类:
其他好文 时间:
2018-06-21 21:04:36
阅读次数:
169
听说正解是啥 set启发式合并+维护凸包+二分 根本不会啊 , 只会 李超线段树合并 啦 ... 题意 : 给你一颗有 $n$ 个点的树 , 每个节点有两个权值 $a_i, b_i$ . 从 $u$ 跳到 $v$ 的代价是 $a_u \times b_v$ . 你需要计算每个节点跳到叶子的最小代价 ...
分类:
其他好文 时间:
2018-06-13 23:26:27
阅读次数:
249
2212: [Poi2011]Tree Rotations Description Byteasar the gardener is growing a rare tree called Rotatus Informatikus. It has some interesting features: ...
分类:
其他好文 时间:
2018-06-07 19:22:25
阅读次数:
166
SOL: 我们发现一棵生成树最多99条边,用线段树合并。 ...
分类:
其他好文 时间:
2018-06-02 21:31:25
阅读次数:
156
题解: 首先裸的dp很好想 f[i][j]表示在i点,最大值<=j的点数最大值 看了别人的题解知道了可以用线段树合并来优化这个东西。。 我们考虑对于每个点,首先我们要合并它的子树 其实就是对于相同位置的点相加即可 然后考虑当前节点,我们应用f[v[x]-1]+1去更新v[x]-n之间的值(也就是取m ...
分类:
其他好文 时间:
2018-05-19 15:39:19
阅读次数:
138
第一次做这种$SAM$带权值线段树合并的题 然而$zjq$神犇看完题一顿狂码就做出来了 $Orz$ 首先把所有串当成一个串建$SAM$ 我们对$SAM$上每个点 建一棵权值线段树 每个叶子节点表示一个匹配串能到达这个点的子串个数 这样我们对最后的$SAM$的权值线段树按$parent$树合并 询问的 ...
分类:
其他好文 时间:
2018-05-18 18:13:24
阅读次数:
211