字符串
Zookkk
这个作者很懒,什么都没留下…
展开
-
浙江省赛K - Strings in the Pocket
思路:假若给的两个字符串不是完全一样的,找到两个字符串第一个不一样的位置pos1和最后一个不一样的位置pos2,得到区间[pos1,pos2],我们尝试翻转这个区间,若翻转之后的第一个字符串和第二个字符串仍然不一样的话,则答案为0,否则扩展这个区间的两边,若每次扩展两边的字母一样的话,答案加1,否则停止扩展。假若给的两个字符串完全一样,则用Manacher算法计算字符串回文子串的数量 代码: ...原创 2019-05-06 02:26:12 · 147 阅读 · 0 评论 -
Hdu 6230 树状数组+manacher
思路:满足题意必须找到一对i,j,符合下列条件 j>i j-i<=p[i] j-i<=p[j] p[i]为以第i个字符为中心的回文串半径,最后一个式子一移项得j-p[j]<=i,然后通过前两个式子可以确定j的范围在(i,i+p[i]]里,每次把符合条件的j放进去,然后每次查询(i,i+p[i]]区间和就行了。 代码: #include<bits/stdc...原创 2019-05-07 00:22:32 · 112 阅读 · 0 评论 -
Manacher模板
int manacher(string s){ string s_new="&#";//&主要用于防越界 int mx=0,id=0; for(int i=0;i<s.size();i++){ s_new+=s[i]; s_new+='#';//#用于保证字符串始终是奇数 } for(int i=0;i...转载 2019-05-07 00:27:09 · 129 阅读 · 0 评论