http://poj.org/problem?id=3974

Manacher模板题。Menci的博客讲得很好

有一点:Menci的代码中的right我感觉是代表能延伸到的最右端点的右边的点,因为r(i)表示包括中心点的回文半径。

不知道理解有没有错误,如果神犇发现了我的理解的错误请告诉本蒟蒻qwq

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; const int N = 1000003; int len, r[N << 1];
char c[N], s[N << 1]; void pre() {
int clen = strlen(c);
len = 0;
s[++len] = '!';
s[++len] = '#';
for (int i = 0; i < clen; ++i)
s[++len] = c[i], s[++len] = '#';
s[++len] = '&';
} int cas = 0; void Manacher() {
int ans = 0, mid = 0, right = 1, x;
for (int i = 1; i <= len; ++i) {
if (i >= right) x = 1;
else x = min(r[(mid << 1) - i], right - i);
while (s[i - x] == s[i + x]) ++x;
ans = max(ans, r[i] = x);
if (i + x > right) right = i + x, mid = i;
}
printf("Case %d: %d\n", ++cas, ans - 1);
} int main() {
while (scanf("%s", c), memcmp(c, "END", 4) != 0) {
pre();
Manacher();
}
}

最新文章

  1. 高性能文件缓存key-value存储—Redis
  2. 发现struct proc_dir_entry内核3.10.17移到internal中去了,倒
  3. 查看LINUX进程内存占用情况
  4. JS鼠标滑轮事件的写法和按键的事件
  5. iOS socket编程 第三方库 AsyncSocket(GCDAsyncSocket)
  6. UAF漏洞--iOS是越狱原理
  7. ASP.NET/MVC 配置log4net启用写错误日志功能
  8. HDU 1241 DFS
  9. 根据PV统计出前三的热门板块,并统计出热门板块下的用户数--方式一
  10. 【BZOJ2946】公共串(后缀数组)
  11. python基础知识点(unittest)
  12. .net压缩文件夹
  13. Quartz.net 定时任务之储存与持久化和集群(源码)
  14. 1: java开发_&quot;&quot;和null的区别
  15. 【Redis】使用Jedis操作Redis
  16. Java参数传值?or传引用?
  17. 手动安装Silverlight 4 Tools for Visual Studio 2010
  18. vue中刷新页面时去闪烁,提升体验方法
  19. Android面试经历2018
  20. Elasticsearch 使用技巧笔记

热门文章

  1. 【BZOJ】1718: [Usaco2006 Jan] Redundant Paths 分离的路径
  2. recycleView实现item点击更改该item颜色,其它item颜色变回
  3. 8.0docker的客户端和守护进程
  4. python 学记笔记 SQLalchemy
  5. 定制LFS镜像及安装过程
  6. Jquery屏蔽浏览器的F1-F12快捷键,在IE,GOOGLE下测试均无问题
  7. leetcode 之Gas Station(11)
  8. hrbust - 2239
  9. ES6 module语法加载 import export
  10. C# 中从程序中下载Excel模板