摘要:
马拉车算法用于解决最长回文字串的一类问题,可以将时间复杂度降低为$O(n)$,几乎达到了理论上的下界。 核心思想:将分奇偶讨论的情况转化成同一种情况(奇数)。 下面介绍该算法需要用到的几点性质: 1. $p[i]$表示以$i$为中心的派生串最长回文半径的长度,则$p[i] 1$表示原串中以$i$为中 阅读全文
摘要:
题目大意:给定一棵 N 个节点的树,点有点权,边有边权,给定 M 个询问,每次询问距离 U 节点不超过 R 的点集中,点权最大的点的编号是多少,若有相同点权,取编号较小的点。 题解: 发现是多组询问,而且涉及的问题很难通过子树信息合并来解决。同时距离 U 节点不超过 R 等价于 U 与 V 路径距离 阅读全文
摘要:
题目大意:给定 4 种面值的硬币和相应的个数,求购买 S 元商品的方案数是多少。 题解: 考虑没有硬币个数的限制的话,购买 S 元商品的方案数是多少,这个问题可以采用完全背包进行预处理。 再考虑容斥,即:可以采用总方案数 sum(一种硬币不合法的方案数) + sum(两种) sum(三种)... 代 阅读全文