【算法】回文自动机学习笔记

算法 回文自动机其实挺简单的,我就尽量简 (tou) 单 (lan) 地讲了 首先回文自动机是用来维护一个字符串的所有回文子串的 回文自动机的每个节点代表一种回文子串 例如 abcaaa 中就有如下节点: a, b, c, aa, aaa 也就是出现位置不同但本质相同的回文子串会被归在一个节点内 然 阅读更多…

【题解】LitPanels 神奇状压 DP TopCoder – 12518 ——litble

题目分析 Topcoder 的题太神奇了,要是不写题解,估计下一次遇见就不会做了…… 假设我已经随意地点亮了一些格子,那么现在我只要用两个矩形能够盖住所有点亮的格子,就说明方案合法。 用所有亮格子中最左,最右,最上,最下的四个格子确定一个矩形区域,那么这两个矩形用(一个放左上角一个放右下角)(一个放 阅读更多…

【题解】CGZ AK IBO 扩展 KMP+DP YZOJ – 10039

1. 题面 题目描述 AK 完了 IOI,CGZ 又向着 AK IBO 的目标出发。毕竟不是生竞选手,CGZ 被一道题难住了。 这道题是说,你若想编辑出一个基因 S(只含小写字符),第一步可以先去买下别人编辑好的 S 的一个前缀,若前缀长度为 L,则要花 $x*L$万元。然后,你可以做以下两个操作: 阅读更多…

【题解】Revolving Digits 扩展 KMP HDU – 4333

题目链接 扩展 KMP 原来这么好写 强烈推荐 boshi 写的教程:戳我戳我! 这题的话就是枚举旋转次数 旋转完的字符串就是一段后缀+一段前缀 那么判断大小关系就是要找到一个不相同的位置 所以就先找到那段后缀与原串的最长公共前缀(LCP)如果 LCP 长度是小于这段后缀的长度的,说明不同的字符在 阅读更多…

【题解】EvenPaths 拓扑+中途相遇+FWT topcoder 11895/bzoj3515 ——litble

题目分析 称可以放置障碍的点为障碍点,假设 1 号点是一个不可防止障碍的障碍点。 将原图拓扑排序,拓扑序前一半障碍点和后一半障碍点分开考虑,那么一条路径一定是: 0号点->后一半障碍点中的某一个(并且它是第一个遇到的后一半障碍点)->1 号点 分开考虑后,前一半和后一半障碍点可以分别枚举它们放置障碍 阅读更多…