字符串---Manacher
小松萘
厉害的人可真多啊
展开
-
CodeForces - 1080E Sonya and Matrix Beauty(回文矩阵)
???? ???? ????题意:给出一个字符串矩阵,现在可以对每行进行重新排列,问能有多少子矩阵满足每一行每一列都是回文串一串字符能通过重新排列变为回文串:最多有一种字符出现奇数次(不论字符串长度奇偶)那么列呢?因为重排后每一列都是回文的,所以第一行的每个字符与最后一行的每一个字符是一一对应的。如果第一行中每种字符的出现次数等于最后一行每种字符的出现次数,那么我们总可以构造出这样一个矩阵使第一行等于最后一行...原创 2020-04-13 12:08:43 · 248 阅读 · 0 评论 -
LightOJ - 1258 Making Huge Palindromes(马拉车板题)
如图,最短的回文串长就是:改字符串的最长回文后缀长度+余下的长度*2int n,len[MX<<1];char a[MX],s[MX<<1];int Manacher(int tt){ int mr=0,pos=0,mx=1;//最长的到达右端的回文串 rpp(i,tt) { len[i]=i<mr?min(mr-i,...原创 2020-03-21 17:46:27 · 202 阅读 · 0 评论 -
HDU - 4513 吉哥系列故事——完美队形II(马拉车变形)
写到崩溃,然后发现是我教错题号了(qswlqswlqswlint s[MX];int rad[MX];int Manacher(int n){ int MR=0,pos=0,mx=0; for(int i=1;i<=n;++i) { rad[i]=i<MR?min(MR-i,rad[pos*2-i]):1; while(s...原创 2020-03-21 17:05:49 · 110 阅读 · 0 评论 -
CodeForces - 1326D2 Prefix-Suffix Palindrome (Hard version) (Manacher算法)
先把两边相等的算上,然后从剩下的中间的里面找一个是前缀或者后缀的最长回文串关于马拉车算法Len为回文半径,MaxRight为最长回文串右端点性质**:Len[ i ] - 1 为原串中该字母所在回文子串的长度**int Len[MX];string Manacher(const string & s){ string str="#"; for(char c:s...原创 2020-03-21 13:26:45 · 213 阅读 · 0 评论