建出差分序列,可以发现最早出现的回文串就是答案,自己想想就懂了。

\(O(N)\)找出回文串就好了,字符串\(hash\)或者\(manacher\)都能在合法时间内得到答案。

#include<cstdio>
#include<algorithm>
using namespace std;
const int mod=1e9+7;
int flag,n,d[2000001],pos[2000001],h[20000001],q[20000002],k=233;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&d[i]),d[i+n]=d[i];
for(int i=1;i<2*n;i++)d[i]=d[i+1]-d[i]+1000000;
pos[0]=1;if(n<3){printf("0\n");return 0;}
for(int i=1;i<2*n;i++)pos[i]=(1ll*pos[i-1]*k)%mod;
for(int i=1;i<2*n;i++)h[i]=(1ll*h[i-1]*k+d[i])%mod;
for(int i=2*n-1;i>=1;i--)q[i]=(1ll*q[i+1]*k+d[i])%mod;
for(int i=n-1;i<2*n;i++)
{
int a=(h[i]-1ll*h[i-n+1]*pos[n-1]%mod+mod)%mod,b=(q[i-n+2]-1ll*q[i+1]*pos[n-1]%mod+mod)%mod;
if(a==b){printf("%d\n",i-n+1);return 0;}
}
printf("IMPOSSIBLE\n");
}

最新文章

  1. 参加2013中国大数据技术大会(BDTC2013)
  2. [Js]滑动门效果
  3. 深入浅出Spring(四) Spring实例分析
  4. eclipse 分屏
  5. mysql 主从同步配置
  6. jdk各个版本的特性
  7. python爬行动物集合360联想词搜索
  8. PHP 13: 类
  9. BZOJ 4089:[Sdoi2015]graft(SDOI 2015 Round 2 Day 2)
  10. 《principles of model checking》中的离散时间马尔科夫链
  11. MySQL分区表与合并表
  12. jquery 蔚蓝网
  13. delphi中 panel如何在Form实现鼠标移动拖放
  14. [复习]动态dp
  15. Kibana简介及下载安装
  16. 身在上海的她,该不该继续&quot;坚持&quot;前端开发?
  17. Redis五种数据结构简介-2
  18. Discuz!X 3.4 任意文件删除漏洞复现过程(附python脚本)
  19. springmvc 简单框架
  20. sort函数(cmp)、map用法---------------Tju_Oj_2312Help Me with the Game

热门文章

  1. 在oc中一些常用的宏定义总结
  2. 自定义标签(客户化jsp标签)
  3. 未知USB设备 端口重置失败
  4. POJ1236 Network of Schools (强连通分量,注意边界)
  5. [POI 2000] 病毒
  6. 初学Java(一)
  7. SQL Server中查询CPU占用高的SQL语句
  8. HDU1496(巧妙hash)
  9. haproxy小结(一)基础概念篇
  10. kafka之三:kafka java 生产消费程序demo示例