"原题链接" 这题好毒瘤啊! 首先看到是树上查询全局某式子的最大值,珂以想到这题无外乎是链分治($\text{dsu on tree}$)或点分治。~~作为一个专业的链分治选手,~~ 窝在比赛中想了$30$min也不会。比赛后想了想,好像$\text{dsu on tree}$不星(珂能还是窝太菜了 ...
分类:
其他好文 时间:
2020-03-01 00:09:07
阅读次数:
75
1.总览 LCT 链分治(树剖) 点/边分治 2.点分治 一棵树,点有$0/1$,多次修改,询问最远的两个$1$距离。 建出点分树,每个子树用堆维护:①最远的$1$距离;②它的每个儿子的①堆顶; 全局维护每棵子树②堆最大的两个值,每次修改暴力改就可以。 时间复杂度$O(n \log^2n)$(基本动 ...
分类:
其他好文 时间:
2019-08-19 09:59:40
阅读次数:
72
题目描述 给一个小写字母字符串 S ,q 次询问每次给出 l,r ,求 s[l..r] 的 Border 。 Border: 对于给定的串 s ,最大的 i 使得 s[1..i] = s[|s|-i+1..|s|], |s| 为 s 的长度。 题解 这题的描述很短,给人一种很可做的假象。 暴力1:每 ...
分类:
其他好文 时间:
2018-12-22 22:08:06
阅读次数:
223
具体看$qzc$论文吧......陈年老物了...... 主要注意每个链头一棵线段树而不是一棵全局线段树 修改操作写完就是正确的,反而是初始化调了好一会...... 跑的还是很快的,有些地方没优化常数也还可以接受 在$luogu$上把$Toptree$给卡下去了,现居$rank1$...... 代码 ...
分类:
其他好文 时间:
2018-08-19 10:59:40
阅读次数:
188
国际惯例的题面:看起来很神的样子......如果我说这是动态DP的板子题你敢信?基于链分治的动态DP?说人话,就是树链剖分线段树维护DP。既然是DP,那就先得有转移方程。我们令f[i]表示让i子树中的叶子节点全部与根不联通,所需要的最小代价,v[i]为输入的点权。显然f[i]=min(v[i],si ...
分类:
其他好文 时间:
2018-05-09 01:10:48
阅读次数:
384
【题意】 给定一棵边带权的无根树,求树上距离不超过k的无序互异点对的个数。 【解法】 树分治练手题…… 三种分治,点分治,边分治,链分治,都可以。 点分治应该也不难写,然而懒得写平衡树了,就用的相对好想好写的边分治。(因为感觉点分治需要用平衡树……) 点分治是选重心当根节点,然后统计经过根节点的路径 ...
分类:
其他好文 时间:
2016-11-06 09:29:18
阅读次数:
230
树分治用于解决有关路径的问题。树分治分为点分治和边分治(其实还有一种叫“链分治”,是树的路径剖分思想的更高级的体现,一般链分治的题目都可以用路径剖分解决)。点分治就是每次找到重心,然后把重心去掉,对分成的每两棵树之间分别统计路径信息(以重心的每个相邻点为根,遍历整棵子树即可得到这个根到每个结点的统计 ...
分类:
其他好文 时间:
2016-07-04 21:54:26
阅读次数:
193
题解:
首先由于此题太神以至于我其实还不会这道题,所以不妨介绍一下括号序列维护树构。
其实都是假的,就是一个点被扫到入栈的时候,序列加一个左括号,然后加入一个字符(可以不加),点出栈的时候就加一个右括号。
然后两点间距离就是两点的在序列的位置中间那一堆括号里,删掉一些匹配的括号后的答案,比如 )(()()(()( ,最后就变成了 )(()(( ,表示左端点需要向上走一步,右端点需要向上走两步...
分类:
其他好文 时间:
2015-04-02 11:43:16
阅读次数:
222
题外话最近课程不是很紧,准备按AC率版切bz,争取一天一道题以上。然后我喜闻乐见的发现之前剩下的题基本都是数据结构>_<。蛋疼啊。。。Description给定一棵树,每个节点要么是黑色,要么是白色,能执行两个操作:把某一个点取反色,返回距离最远的黑色点对。Solution这题看起来链分治,边分治都可做,然后搜到了小岛的题解。发现了逼格更高的做法,看了曹钦翔的《数据结构的提炼与压缩》,跪烂了。。。...
分类:
其他好文 时间:
2015-03-03 18:35:12
阅读次数:
196