随笔分类 - 平衡树
摘要:考虑一条扫描线从左到右扫过这些圆。观察某一时刻直线与这些圆的交点,可以发现构成一个类似括号序列的东西,括号的包含关系与圆的包含关系是相同的。并且当扫描线逐渐移动时,括号间的相对顺序不变。于是考虑用set维护这个括号序列,插入时统计被包含层数。这只需要查询后继括号,如果是右括号则被该括号包含,答案为该
阅读全文
摘要:一个显然的dp是设f[i][j]为i子树内权值<=j时的答案,则f[i][j]=Σf[son][j],f[i][a[i]]++,f[i][a[i]+1~n]对其取max。这样是可以线段树合并的,但实在太弱了不太会。 另一种做法是考虑扩展经典的单调队列优化LIS的做法,维护子树内答案为k时最小的最大值
阅读全文
摘要:好友状态的变化次数不会超过m,于是考虑暴力,对每个人记录其好友关系的变化,通过前缀和计算贡献。这需要查询一段前缀时间内某人发的微博数量,可以离线建一棵绝对平衡的平衡树。事实上完全可以线性。
阅读全文
摘要:一个字符串本质不同的子串数量显然是总子串数减去所有height值。如果一个个往里加字符的话,每次都会改动所有后缀完全没法做。但发现如果从后往前加的话,每次只会添加一个后缀。于是我们把字符串倒过来,每次往里添加后缀并维护答案。可以用一棵平衡树,每次插入时查询这个名次的前驱后继以更新。 SA板子敲得磕磕
阅读全文