洛谷P3649 [APIO2014]回文串(回文自动机)
传送门
话说回文自动机我自己都还没搞懂呢……
等到时候会了再来填坑
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]回文串(回文自动机)相关推荐
- 洛谷P3647 [APIO2014] 连珠线 题解
洛谷P3647 [APIO2014] 连珠线 题解 题目链接:P3647 [APIO2014] 连珠线 题意: 在达芬奇时代,有一个流行的儿童游戏称为连珠线.当然,这个游戏是关于珠子和线的.线是红色或 ...
- 洛谷试炼日记(trie树,AC自动机,回文自动机)(解题报告)
文章目录 **Trie树** P4683 [IOI2008] Type Printer 打印机 **AC自动机** P2444 [POI2000]病毒 **回文自动机** P5496 [模板]回文自动 ...
- 2018.12.15 bzoj3676: [Apio2014]回文串(后缀自动机)
传送门 对原串建立一个后缀自动机,然后用反串在上面匹配. 如果当前匹配的区间[l,r][l,r][l,r]包裹了当前状态的endposendposendpos中的最大值,那么[l,maxpos][l, ...
- 论如何优雅的处理回文串 - 回文自动机详解
写在前面 最近无意中看到了这个数据结构,顺便也就学习了一下. 而且发现网上关于这个算法的描述有很多地方是错的,在这里做了一些更正. 处理字符串的算法很多: KMP,E-KMP,AC自动机,后缀三兄弟: ...
- HYSBZ - 2565 最长双回文串(回文自动机)
题目链接:点击查看 题目大意:给出一个字符串 s ,求最长双回文子串,题目规定最长双回文子串 t 可以拆成左右两部分,满足两部分都是回文串 题目分析:一开始读错题了,以为是双回文串本身也需要是回文串, ...
- HYSBZ - 3676 回文串(回文自动机)
题目链接:点击查看 题目大意:求出回文子串中 出现次数*长度 的最大值 题目分析:回文自动机直接搞维护最大值就是答案了 代码: #include<iostream> #include< ...
- HYSBZ 2565 最长双回文串 (回文树)
2565: 最长双回文串 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 1377 Solved: 714 [Submit][Status][Dis ...
- 【洛谷P6072 [MdOI2020] Path】【回滚莫队+Trie】
题意 给一棵 n n n个节点的树,边有边权.定义一条路径的权值为边权的异或和.找两条节点不相交的路径,使得这两条路径的权值和最大. n ≤ 30000 n\le 30000 n≤30000 分析 问 ...
- 洛谷P3648 [APIO2014]序列分割(斜率优化)
传送门 没想到这种多个状态转移的还能用上斜率优化--学到了-- 首先我们可以发现,切的顺序对最终答案是没有影响的 比方说有一个序列$abc$,每一个字母都代表几个数字,那么先切$ab$再切$bc$,得 ...
- 回文算法java实现_java算法题:最长回文串
LeetCode: 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串.在构造过程中,请注意区分大小写.比如"Aa"不能当做一个回文字符串.注 意:假设字 ...
最新文章
- sql列转行函数oracle,SQL列转行
- c3p0数据库连接池+mysql数据库基本使用方法
- qt: 获取sql数据表的所有的字段;
- android 获取对象,在Android中获取LayoutInflater对象的方法
- 关于Python3.6下登陆接口的尝试
- hive简介(大数据技术)
- 关于SQL语言的优化(Oracle)
- android 自定义心电图,Android自定义 View 练习 —— 心电图的绘制
- HL-1208机器清零方法
- 后台管理导航菜单及模板
- codeforces 56E 多米诺骨牌效应
- 三年两转型 打造大宗商品交易大数据生态圈
- A blockchain‑based smart home gateway architecture for preventing data forgery
- 【蓝桥杯】单片机学习(7)——UART串口通信
- html文本文档加图片格式,以图片格式呈现的文档怎么编辑文字
- 名帖17 吴让之 篆书《吴让之篆书墨迹》
- oracle用delete删除数据所需时间测试
- kettle(pdi)数据库连接中的密码的加密与解密
- 程序员要不要去外包外派公司
- C程序----韩信点兵
热门文章
- 在sql语句中该如何处理null值
- ajax 详解(GET,POST方式传输以其封装)
- Linux chapter 5
- 1.4.2.PHP5.6 狐教程-环境(Mac下 PHP开发环境 配置及安装 php5.6.x nginx mysql)
- 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_02-自定义查询页面-服务端-接口开发...
- 小D课堂 - 新版本微服务springcloud+Docker教程_4-02 微服务调用方式之ribbon实战 订单调用商品服务...
- 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第5节 使用骨架创建maven的java工程_14maven工程servlet实例之指定web文件夹...
- 使用Myvatis Generator自动创建项目代码
- PCL Save VTK File With Texture Coordinates 使用PCL库来保存带纹理坐标的VTK文件
- 最小化安装CentOS-7-x86_64-Minimal-1511图文教程