传送门

话说回文自动机我自己都还没搞懂呢……

等到时候会了再来填坑

 1 //minamoto
 2 #include<cstdio>
 3 #include<cstring>
 4 #define ll long long
 5 template<class T>inline bool cmax(T&a,const T&b){return a<b?a=b,1:0;}
 6 const int N=3e5+5;
 7 char s[N];
 8 int n,p,q,fail[N],cnt[N],len[N],tot,last,ch[N][26];
 9 ll ans;
10 inline int newnode(int x){
11     len[++tot]=x;return tot;
12 }
13 inline int getfail(int x,int n){
14     while(s[n-len[x]-1]!=s[n]) x=fail[x];
15     return x;
16 }
17 int main(){
18     scanf("%s",s+1);
19     s[0]=-1,fail[0]=1,last=0;
20     len[0]=0,len[1]=-1,tot=2;
21     for(int i=1;s[i];++i){
22         s[i]-='a';
23         p=getfail(last,i);
24         if(!ch[p][s[i]]){
25             q=newnode(len[p]+2);
26             fail[q]=ch[getfail(fail[p],i)][s[i]];
27             ch[p][s[i]]=q;
28         }
29         ++cnt[last=ch[p][s[i]]];
30     }
31     for(int i=tot;i;--i)
32     cnt[fail[i]]+=cnt[i],cmax(ans,1ll*cnt[i]*len[i]);
33     printf("%lld\n",ans);
34     return 0;
35 }

转载于:https://www.cnblogs.com/bztMinamoto/p/9629587.html

洛谷P3649 [APIO2014]回文串(回文自动机)相关推荐

  1. 洛谷P3647 [APIO2014] 连珠线 题解

    洛谷P3647 [APIO2014] 连珠线 题解 题目链接:P3647 [APIO2014] 连珠线 题意: 在达芬奇时代,有一个流行的儿童游戏称为连珠线.当然,这个游戏是关于珠子和线的.线是红色或 ...

  2. 洛谷试炼日记(trie树,AC自动机,回文自动机)(解题报告)

    文章目录 **Trie树** P4683 [IOI2008] Type Printer 打印机 **AC自动机** P2444 [POI2000]病毒 **回文自动机** P5496 [模板]回文自动 ...

  3. 2018.12.15 bzoj3676: [Apio2014]回文串(后缀自动机)

    传送门 对原串建立一个后缀自动机,然后用反串在上面匹配. 如果当前匹配的区间[l,r][l,r][l,r]包裹了当前状态的endposendposendpos中的最大值,那么[l,maxpos][l, ...

  4. 论如何优雅的处理回文串 - 回文自动机详解

    写在前面 最近无意中看到了这个数据结构,顺便也就学习了一下. 而且发现网上关于这个算法的描述有很多地方是错的,在这里做了一些更正. 处理字符串的算法很多: KMP,E-KMP,AC自动机,后缀三兄弟: ...

  5. HYSBZ - 2565 最长双回文串(回文自动机)

    题目链接:点击查看 题目大意:给出一个字符串 s ,求最长双回文子串,题目规定最长双回文子串 t 可以拆成左右两部分,满足两部分都是回文串 题目分析:一开始读错题了,以为是双回文串本身也需要是回文串, ...

  6. HYSBZ - 3676 回文串(回文自动机)

    题目链接:点击查看 题目大意:求出回文子串中 出现次数*长度 的最大值 题目分析:回文自动机直接搞维护最大值就是答案了 代码: #include<iostream> #include< ...

  7. HYSBZ 2565 最长双回文串 (回文树)

    2565: 最长双回文串 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1377  Solved: 714 [Submit][Status][Dis ...

  8. 【洛谷P6072 [MdOI2020] Path】【回滚莫队+Trie】

    题意 给一棵 n n n个节点的树,边有边权.定义一条路径的权值为边权的异或和.找两条节点不相交的路径,使得这两条路径的权值和最大. n ≤ 30000 n\le 30000 n≤30000 分析 问 ...

  9. 洛谷P3648 [APIO2014]序列分割(斜率优化)

    传送门 没想到这种多个状态转移的还能用上斜率优化--学到了-- 首先我们可以发现,切的顺序对最终答案是没有影响的 比方说有一个序列$abc$,每一个字母都代表几个数字,那么先切$ab$再切$bc$,得 ...

  10. 回文算法java实现_java算法题:最长回文串

    LeetCode: 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串.在构造过程中,请注意区分大小写.比如"Aa"不能当做一个回文字符串.注 意:假设字 ...

最新文章

  1. sql列转行函数oracle,SQL列转行
  2. c3p0数据库连接池+mysql数据库基本使用方法
  3. qt: 获取sql数据表的所有的字段;
  4. android 获取对象,在Android中获取LayoutInflater对象的方法
  5. 关于Python3.6下登陆接口的尝试
  6. hive简介(大数据技术)
  7. 关于SQL语言的优化(Oracle)
  8. android 自定义心电图,Android自定义 View 练习 —— 心电图的绘制
  9. HL-1208机器清零方法
  10. 后台管理导航菜单及模板
  11. codeforces 56E 多米诺骨牌效应
  12. 三年两转型 打造大宗商品交易大数据生态圈
  13. A blockchain‑based smart home gateway architecture for preventing data forgery
  14. 【蓝桥杯】单片机学习(7)——UART串口通信
  15. html文本文档加图片格式,以图片格式呈现的文档怎么编辑文字
  16. 名帖17 吴让之 篆书《吴让之篆书墨迹》
  17. oracle用delete删除数据所需时间测试
  18. kettle(pdi)数据库连接中的密码的加密与解密
  19. 程序员要不要去外包外派公司
  20. C程序----韩信点兵

热门文章

  1. 在sql语句中该如何处理null值
  2. ajax 详解(GET,POST方式传输以其封装)
  3. Linux chapter 5
  4. 1.4.2.PHP5.6 狐教程-环境(Mac下 PHP开发环境 配置及安装 php5.6.x nginx mysql)
  5. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_02-自定义查询页面-服务端-接口开发...
  6. 小D课堂 - 新版本微服务springcloud+Docker教程_4-02 微服务调用方式之ribbon实战 订单调用商品服务...
  7. 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第5节 使用骨架创建maven的java工程_14maven工程servlet实例之指定web文件夹...
  8. 使用Myvatis Generator自动创建项目代码
  9. PCL Save VTK File With Texture Coordinates 使用PCL库来保存带纹理坐标的VTK文件
  10. 最小化安装CentOS-7-x86_64-Minimal-1511图文教程