[APIO2010] 回文串 - 回文自动机
经典题吧

我觉得我要换个板子,这结构体板子真TM不顺手
#include <bits/stdc++.h>
using namespace std;
const int N = 2e6 + 5;
struct PAM_Trie {
    int ch[26];
    int fail, len, cnt;
};
struct PAM {
    PAM_Trie b[N];
    int n, last, cnt, s[N];
    PAM() {
        b[0].len = 0;
        b[1].len = -1;
        b[0].fail = 1;
        b[1].fail = 0;
        last = 0;
        cnt = 1;
    }
    int get_fail(int x) {
        while(s[n - b[x].len - 1] != s[n]) {
            x = b[x].fail;
        }
        return x;
    }
    void insert(char ch) {
        s[++n]=ch;
        int p = get_fail(last);
        if(!b[p].ch[s[n]]) {
            b[++cnt].len = b[p].len + 2;
            int tmp = get_fail(b[p].fail);
            b[cnt].fail = b[tmp].ch[s[n]];
            b[p].ch[s[n]] = cnt;
        }
        last = b[p].ch[s[n]];
        b[last].cnt++;
    }
} P;
int length;
char c[N];
int main() {
    scanf("%s", c + 1);
    length = strlen(c + 1);
    int k=0;
    P.s[0]=26;
    for(int i=1;i<=length;i++) {
        P.insert(c[i]-'a');
    }
    long long mx=0;
    for(int i=P.cnt;i>=1;--i) {
        P.b[P.b[i].fail].cnt += P.b[i].cnt;
        mx=max(mx, (long long)P.b[i].len * P.b[i].cnt);
    }
    cout<<mx<<endl;
}
[APIO2010] 回文串 - 回文自动机的更多相关文章
- 2018.12.15 bzoj3676: [Apio2014]回文串(后缀自动机)
		传送门 对原串建立一个后缀自动机,然后用反串在上面匹配. 如果当前匹配的区间[l,r][l,r][l,r]包裹了当前状态的endposendposendpos中的最大值,那么[l,maxpos][l, ... 
- bzoj 2565: 最长双回文串 回文自动机
		题目: Description 顺序和逆序读起来完全一样的串叫做回文串.比如acbca是回文串,而abc不是(abc的顺序为"abc",逆序为"cba",不相同 ... 
- 【bzoj3676】[Apio2014]回文串  回文自动机
		题目描述 考虑一个只包含小写拉丁字母的字符串s.我们定义s的一个子串t的“出现值”为t在s中的出现次数乘以t的长度.请你求出s的所有回文子串中的最大出现值. 输入 输入只有一行,为一个只包含小写字母( ... 
- [Bzoj3676][Apio2014]回文串(后缀自动机)(parent树)(倍增)
		3676: [Apio2014]回文串 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 3396 Solved: 1568[Submit][Statu ... 
- 【bzoj3676】[Apio2014]回文串 —— 回文自动机的学习
		写题遇上一棘手的题,[Apio2014]回文串,一眼看过后缀数组+Manacher.然后就码码码...过是过了,然后看一下[Status],怎么慢这么多,不服..然后就搜了一下,发现一种新东西——回文 ... 
- hysbz3676 回文串 回文自动机
		回文自动机模板题 头铁了一下午hdu6599,最后发现自己的板有问题 先放这里一个正确性得到基本确认的板,过两天肝hdu6599 #pragma GCC optimize(2) #include< ... 
- bzoj 3676: [Apio2014]回文串 回文自动机
		3676: [Apio2014]回文串 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 844 Solved: 331[Submit][Status] ... 
- BZOJ3676[Apio2014]回文串——回文自动机
		题目描述 考虑一个只包含小写拉丁字母的字符串s.我们定义s的一个子串t的“出 现值”为t在s中的出现次数乘以t的长度.请你求出s的所有回文子串中的最 大出现值. 输入 输入只有一行,为一个只包含小写字 ... 
- [bzoj3676][Apio2014]回文串——Manacher+后缀自动机+倍增
		Brief Description 一个回文串的value定义为这个回文串的长度乘以出现次数.给定一个字符串,求\(value_{max}\). Algorithm Design 我们使用Manach ... 
- HYSBZ  2565 最长双回文串 (回文树)
		2565: 最长双回文串 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 1377 Solved: 714 [Submit][Status][Dis ... 
随机推荐
- JVM垃圾回收——GC
			一.JVM内存分配与回收 下图为堆内存结构图(注意:元数据区(MetaData )实际上不属于堆): 1.对象优先在Eden区分配 大多数情况下,对象在新生代中Eden区分配.当Eden区没有足够空间 ... 
- Spring Boot 配置拦截器方式
			其实spring boot拦截器的配置方式和springMVC差不多,只有一些小的改变需要注意下就ok了.下面主要介绍两种常用的拦截器: 一.基于URL实现的拦截器: public class Log ... 
- .NET CORE(C#) WPF 重新设计Instagram
			微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. .NET CORE(C#) WPF 重新设计Instagram 阅读导航 本文背景 代码实现 ... 
- element-ui 和ivew-ui的table导出export纯前端(可用)
			一.element-ui 1.安装依赖Element组件库中的el-table表格导出需要的主要是两个依赖:(xlsx 和 file-saver) npm install --save xlsx fi ... 
- c#Socket通信基本使用
			基本流程 Server private void btnStart_Click(object sender, EventArgs e) { try { //当点击开始监听时在服务器端创建一个负责监视I ... 
- 深度优先搜索DFS---全球变暖
			内心OS:这道题是去年准备HD复试时,我用来练习DFS的.现在再做这道题,感触颇深,唉,时光蹉跎,物是人非啊~~ 题目: 你有一张某海域NxN像素的照片,”.”表示海洋.”#”表示陆地,如下所示: … ... 
- Projected coordinate systems 和 wkid
			Projected coordinate systems Well-known ID Name Well-known text 2000 Anguilla_1957_British_West_Indi ... 
- 小白的java学习之路      “ 选择结构(二)”
			switch 选择结构: 为什么使用switch选择结构: switch选择结构可以更好地解决等值判断问题. switch选择结构的四个关键字: switch case default ... 
- java 快速生成树的方式
			public class XzqhDto { @ApiModelProperty("另加数据") private String label; @ApiModelProperty(& ... 
- Android9.0 Camera2 横屏问题修改记录
			vendor\mediatek\proprietary\packages\apps 目录下有三份相机源码 分别是 Camera. Camera1. Camera2 通过查看 mk 发现通过 ifeq ... 
