摘要: 传送门 看过题之后,感觉似乎最长双回文串是可以由两个回文串拼接出来的? 于是乎我就有了一种算法!每次用manacher求出当前最大回文半径的同时,处理出每个一个点向右能拓展的最远的回文串长度和向左能拓展的回文串长度,就有如下递推: mr[i-p[i]+1] = max(mr[i-p[i]+1],p[ 阅读全文
posted @ 2018-10-11 00:27 CaptainLi 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 传送门 这题果然是AC自动机的大好题! 题目的大意是,给定一个l*c的大网格,每个格子里有一个字符,每个格子可以向八个方向形成字符串,问给定的字符串在哪里能被匹配以及在网格中出现的方向(A代表北,然后依次顺时针转) 解题思路还好想,而且特别暴力:把给定的字符串建成一个AC自动机,之后对于大网格,把八 阅读全文
posted @ 2018-10-11 00:18 CaptainLi 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 传送门 Trie树的模板题。我们把每个人都存在Trie树里面,然后再每个人跑一遍即可。注意一个人走过之后要清零,否则的话会被重复计算。 阅读全文
posted @ 2018-10-11 00:10 CaptainLi 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 传送门 这道题能想到是trie树+搜索,不过在trie树上dfs确实让人大开眼界…… 具体怎么做呢?首先我们可以按照模式串来建立一棵trie树,不过这样的话空间限制是一个问题。解决的方法是把trie树像建图一样用链式前向星去存储,这样的话就节省了很多空间(具体怎么实现可以看代码,还是很简单的)。之后 阅读全文
posted @ 2018-10-11 00:06 CaptainLi 阅读(183) 评论(0) 推荐(0) 编辑