题意:给出一个数字串,询问最长的子串,满足以下要求:将子串平均分为三部分,一三部分相等,一二部分对衬。

  1. /*
  2. 在manachar的基础上,枚举回文串的中心,再找第三部分。
  3. */
  4. #include<cstdio>
  5. #include<iostream>
  6. #define M 200010
  7. using namespace std;
  8. int s[M],a[M],p[M],len;
  9. void Manancher(){
  10. int l=;
  11. a[l++]=-;
  12. a[l++]=-;
  13. for(int i=;i<len;i++){
  14. a[l++]=s[i];
  15. a[l++]=-;
  16. }
  17. a[l]=-;
  18. int mx=,id=;
  19. for(int i=;i<l;i++){
  20. p[i]=mx>i?min(p[*id-i],mx-i):;
  21. while(a[i+p[i]]==a[i-p[i]])p[i]++;
  22. if(i+p[i]>mx){
  23. mx=i+p[i];
  24. id=i;
  25. }
  26. }
  27. }
  28. int main(){
  29. int T,tt=;
  30. scanf("%d",&T);
  31. while(T--){
  32. scanf("%d",&len);
  33. for(int i=;i<len;i++)scanf("%d",&s[i]);
  34. Manancher();
  35. int ans=;
  36. for(int i=;i<=len*+;i+=){
  37. for(int j=i+p[i]-;j-i>ans;j-=){
  38. if(j-i+<=p[j]){
  39. ans=max(ans,j-i);
  40. break;
  41. }
  42. }
  43. }
  44. printf("Case #%d: %d\n",++tt,ans/*);
  45. }
  46. return ;
  47. }

Hotaru's problem(hdu 5371)的更多相关文章

  1. Hdu 5371 Hotaru's problem (manacher+枚举)

    题目链接: Hdu 5371 Hotaru's problem 题目描述: 给出一个字符串N,要求找出一条N的最长连续子串.这个子串要满足:1:可以平均分成三段,2:第一段和第三段相等,3:第一段和第 ...

  2. HDU 5371——Hotaru's problem——————【manacher处理回文】

    Hotaru's problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  3. HDU 5371(2015多校7)-Hotaru&#39;s problem(Manacher算法求回文串)

    题目地址:HDU 5371 题意:给你一个具有n个元素的整数序列,问你是否存在这样一个子序列.该子序列分为三部分,第一部分与第三部分同样,第一部分与第二部分对称.假设存在求最长的符合这样的条件的序列. ...

  4. 2015 Multi-University Training Contest 7 hdu 5371 Hotaru's problem

    Hotaru's problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  5. HDU 5371 (2015多校联合训练赛第七场1003)Hotaru&#39;s problem(manacher+二分/枚举)

    pid=5371">HDU 5371 题意: 定义一个序列为N序列:这个序列按分作三部分,第一部分与第三部分同样,第一部分与第二部分对称. 如今给你一个长为n(n<10^5)的序 ...

  6. Manacher HDOJ 5371 Hotaru's problem

    题目传送门 /* 题意:求形如(2 3 4) (4 3 2) (2 3 4)的最长长度,即两个重叠一半的回文串 Manacher:比赛看到这题还以为套个模板就行了,因为BC上有道类似的题,自己又学过M ...

  7. [2015hdu多校联赛补题]hdu5371 Hotaru's problem

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5371 题意:把一个数字串A翻过来(abc翻过来为cba)的操作为-A,我们称A-AA这样的串为N-se ...

  8. 回文串---Hotaru's problem

    HDU   5371 Description Hotaru Ichijou recently is addicated to math problems. Now she is playing wit ...

  9. Hotaru's problem

    Hotaru's problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

随机推荐

  1. 每个程序员都会的35个jQuery小技巧!

    1. 禁止右键点击$(document).ready(function(){ $(document).bind("contextmenu",function(e){ return ...

  2. iOS小知识点(非UI部分)

    1. _cmd 表示当前方法的@SEL指针, - (void)putString{} 对于这个函数_cmd 等效于@selector(putString)

  3. Servlet和JSP学习指导与实践(一):Servlet API初探

    前言: JavaSE如何跨度到JavaEE?原本java语言只是专门用于application桌面小应用程序的开发,但自从其追随CGI进入服务器端的开发之后便一发不可收拾.先是Servlet1.0,再 ...

  4. [转载]java int与integer的区别

    声明: 本篇文章属于转载文章,来源:

  5. mysql安装和配置

    一.下载mysql mysql下载页 我用的是5.6,点击旁边的"Looking for previous GA versions?"按钮就能看到5.6版本 mysql-5.6.3 ...

  6. Linux命令:查看登录用户

    查看所有用户: # w 查看当前用户: # who am i 结束用户进程:# pkill -9 -t pts/0

  7. 面试题目——《CC150》中等难题

    面试题17.1:编写一个函数,不用临时变量,直接交换两个数. 思路:使用差值或者异或 package cc150.middle; public class Exchange { public stat ...

  8. 让Web页面中的编辑器支持黏贴或直接拖拽来添加图片

    基本原理是将剪贴板中的图片二进制数据转为Base64编码 代码: <html> <head> </head> <body> <script src ...

  9. CSS3按钮效果

    来自codepen,http://codepen.io/PalashSharma20/pen/YWBAgN 知识点:屏幕居中.transform.transition.transition-delay ...

  10. git学习之旅

    http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743256916071d ...