该文被密码保护。 阅读全文
该文被密码保护。 阅读全文
摘要:
分块,对于每一块用线段树的结构维护每个节点在每个值域区间下的最大子段和。由于管辖区间长度为 $len$ 的区间只有 $len^2$ 种值域区间,所以只要能够在 $\Theta(len^2)$ 的复杂度内合并左右子树到当前节点就可以了。归并排序可以找到左/右儿子最大/小的比这个数大/小的数,直接合并即 阅读全文
摘要:
有一个长度为 $n$ 的序列 $a$,定义一个二元运算 $x\circ y$,它满足结合律。$q$ 次询问,每次求 $a_l\circ a_{l+1}...\circ a_r$。 线段树是解决这种问题的数据结构之一。猫树可以在 $\Theta(n\log n)-\Theta(1)$ 内解决。sqrt 阅读全文
摘要:
有这样一类问题:给你若干个元素 $(a,b,c)$,选出一些,要求它们的 $a$ 满足一些条件,使得 $\sum b\times \sum c$ 最小(大)。 通用解法:把每种选择方案看成坐标系上的一个点 $(\sum b,\sum c)$。则就是拿一个反比例函数去切,最小的能切到点的反比例函数就是 阅读全文
摘要:
对于非树边 $u,v,[l,r]$,$u,v$ 路径上所有树边边权必然 $<r$。先修改路径上这些边边权的上界。 可以想到这样一种贪心策略,先考虑树边,如果发现一条路径 $u,v$ 上的树边全部设定好边权了,那么把非树边 $u,v$ 纳入考虑范围。 具体的,把所有树边按边权下界排序,按照 $i=1~ 阅读全文
摘要:
在计算以 $u$ 为根的子树的答案时,只需要知道会经过 $u$ 的方案的和,再加上儿子的答案。 对于子树内的点 $v$,假设它是 $u$ 在 $son$ 方向的儿子,要让它成为最小值,由于算的是经过 $u$ 的方案,那么 $v\rightarrow u$ 上的所有点都会成为这种方案经过的点。因此 $ 阅读全文
摘要:
一眼 dp,发现列不出状态。排列计数问题遇到这种情况,考虑笛卡尔树。 发现一次删除对应到笛卡尔树上就是删掉所有儿子数不为 $2$ 的节点。特别地,对于当前树中下标最小/最大的点,它们没有儿子时才会被删除。 ~~然后这不随便乱 dp?~~其实这个 dp 属实有点恶心,~~我比赛的时候搞了1h dp还是 阅读全文