【题目链接】:http://hihocoder.com/problemset/problem/1032

【题意】

【题解】



原文地址:https://segmentfault.com/a/1190000003914228












UPD1

RL[j]的定义是,回文最左或最右端到中心点j的距离



【Number Of WA】



0



【完整代码】

#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define ms(x,y) memset(x,y,sizeof x) typedef pair<int,int> pii;
typedef pair<LL,LL> pll; const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);
const int N = 2e6+100; int t,rad[N];
char str[N],s[N]; int main()
{
//freopen("F:\\rush.txt","r",stdin);
ios::sync_with_stdio(false),cin.tie(0);//scanf,puts,printf not use
cin >> t;
while (t--)
{
cin >> str;
int n = 1;
s[0] = '$',s[1] = '#';
for (int i = 0;str[i];i++)
{
s[++n] = str[i];
s[++n] = '#';
}
int maxright = 0,pos=0;
rep1(i,1,n)
{
if (maxright>i)
rad[i] = min(maxright-i,rad[pos*2-i]);
else
rad[i] = 1;
while (s[i-rad[i]]==s[i+rad[i]]) rad[i]++;
if (i+rad[i]-1>maxright)
{
maxright = i+rad[i]-1;
pos = i;
}
}
int ans = rad[1]-1;
rep1(i,2,n)
ans = max(ans,rad[i]-1);
cout << ans << endl;
}
return 0;
}

最新文章

  1. 深入学习jQuery选择器系列第六篇——过滤选择器之状态选择器
  2. jstorm集群部署
  3. css设置select高度(IE,FF,Chrome)[转]
  4. eslintrc配置翻译
  5. input框只能输入整数和浮点数非数字就不输入
  6. PHP isset() 检测变量是否设置
  7. zabbix3.0.4监控mysql主从同步
  8. sqlserver 2000事务复制问题
  9. [Stephen]关于Ext.net fileupload 的兼容性解决问题
  10. 网络基础---OSI 模型与TCP/IP
  11. HashTable的数组和连接两种实现方法(Java版本号)
  12. 利用 Docker 备份、迁移数据库
  13. Go 语言基础语法
  14. scala的多种集合的使用(1)之集合层级结构与分类
  15. Linux报错
  16. 在 iOS 上通过 802.11k、802.11r 和 802.11v 实现 Wi-Fi 网络漫游
  17. 利用redis制作消息队列
  18. 删除个别主机的Know_hosts文件信息
  19. shell 截取字符串
  20. 结对编程-四则运算生成器(java实现)

热门文章

  1. 支持中文的基于词为基本粒度的前缀树(prefix trie)python实现
  2. 关于SharePoint讨论板的一些知识(2)--视图中的栏目
  3. 301 和 302 对 SEO 的影响
  4. 【BZOJ】2140 稳定婚姻
  5. wpf Listbox 设置ItemContainerStyle后,ItemTemplateSelector不能触发
  6. SVGImageView
  7. 杂项:hive(数据仓库工具)
  8. 关于作者&amp;情况
  9. 27. Remove Element[E]移除元素
  10. Python笔记(十一)——数据抓取例子