摘要: 比较好的一道虚树题. 建出虚树,然后计算虚树中距离点 $x$ 最近的关键点,这个来一次树形dp+换根即可实现. 难点在于计算 $x$ 到 $x$ 父亲这一段所有节点归属于谁(肯定属于 $x$ 的最近点或 $x$ 父亲最近点). 这里的话肯定可以二分出拐点(拐点以前属于 $x$,拐点以后属于 $y$) 阅读全文
posted @ 2020-07-05 12:29 EM-LGH 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 问题可以转化为:$A$ 与 $B$ 所有前缀一一配对,LCP 之和最大是多少. 构建后缀树,然后对于点 $x$,若 LCP 为 $x$ 则贡献就是 $x$ 子树中 $A$ 点和 $B$ 点较小数量. 我们发现如果要求和最大,就贪心匹配. 由于后缀树中点 $x$ 的长度为 mx[x] ~ mx[pre 阅读全文
posted @ 2020-07-05 08:54 EM-LGH 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个排列,每次有两种操作:1 区间降序排列 2 区间升序排列,求 m 才操作后 q 位置上的数字 这道题非常神仙啊. 假如说序列中只有 0,1 的话我们只需要用线段树维护 0,1的个数然后进行区间覆盖即可. 由于所有数互不相同,考虑二分 $q$ 点上的数 $mid$,然后将大于等于 $mi 阅读全文
posted @ 2020-07-05 08:11 EM-LGH 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 比较简单的一道题. 矩阵乘法,唯一需要注意的地方就是这道题需要维护前缀和. 那么我们就多增加一个变量 $g$,表示前缀和,然后在设置矩阵的时候将 $g$ 要乘的一列中的元素都设置成前缀和即可. 做这种题的时候可以先打一个暴力来测试一下边界什么的,然后再去用矩阵乘法来优化. code: #includ 阅读全文
posted @ 2020-07-05 08:07 EM-LGH 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 直接算不好算,考虑拆开系数来算贡献. 对于 $b_{i}w_{i}$,可以看成 $1$ ~ $i$ 中每走一步就会产生 $w_{i}$ 的贡献,也就说 $i$ 的贡献就是 $i$ 的后缀和. 那么问题可以转化为: 有 $n$ 个元素,每个元素可以选 $[-k,k]$ 个,且第 $i$ 时刻选的元素个 阅读全文
posted @ 2020-07-05 08:05 EM-LGH 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 可以将问题抽象成选 1 就向右走,选 0 就向上走,且不能经过 y=x+1 的方案数. 考虑容斥:总-不合法. 总方案数就是 $\binom{n+m}{n}$,然后不合法的方案数对于 y=x+1 对称后发现就是 $(-1,1)$ 走到 $(n,m)$ 的方案数. code: #include <bi 阅读全文
posted @ 2020-07-05 08:02 EM-LGH 阅读(165) 评论(0) 推荐(0) 编辑