题面
题意:给出两个串,问所有回文串在两个串出现次数之积之和。

应该是回文自动机果题
插完一个串后重置last,再插入另一个串
每个状态对于两个串分别统计Right集的大小
就可以统计答案了

#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <ctime>
#include <cstdio>
#include <cstdlib>
#include <cstring>using namespace std;
#define mmst(a, b) memset(a, b, sizeof(a))
#define mmcp(a, b) memcpy(a, b, sizeof(b))typedef long long LL;const int N=200200;int n;
int son[N][26],pre[N],len[N],r[N][2],last,cnt;
char s[N];
LL ans;void Insert(int pos,int ops)
{int x=last,ch=s[pos]-'A';while(s[pos-len[x]-1]!=s[pos])x=pre[x];if (!son[x][ch]){len[++cnt]=len[x]+2;int y=pre[x];while(s[pos-len[y]-1]!=s[pos])y=pre[y];pre[cnt]=son[y][ch];son[x][ch]=cnt;}x=son[x][ch];r[x][ops]++;last=x;
}int main()
{pre[1]=pre[0]=cnt=1;len[1]=-1;scanf("%s",s+1);n=strlen(s+1);for(int i=1;i<=n;i++)Insert(i,0);last=0;scanf("%s",s+1);n=strlen(s+1);for(int i=1;i<=n;i++)Insert(i,1);for(int i=cnt;i>=2;i--)if(pre[i]>1)r[pre[i]][0]+=r[i][0],r[pre[i]][1]+=r[i][1];for(int i=2;i<=cnt;i++)ans+=(LL)r[i][0]*r[i][1];cout<<ans<<endl;return 0;
}

BZOJ4480:快乐的jyy(回文自动机)相关推荐

  1. BZOJ 4480: [Jsoi2013]快乐的jyy(回文自动机)

    Description [故事背景] JYY在JSOI有很多很多的好朋友,比如PUPPY,KFC还有PUPPUP.因为 有了这么多的好朋友,所以JYY每天都很快乐.某天,JYY发现好朋友之间关 系的好 ...

  2. Bzoj4480: [Jsoi2013]快乐的jyy 广义后缀自动机 倍增 哈希 manacher

    国际惯例的题面: 有人说这是回文自动机的板子题,然而我是不会这种东西的. 于是,我选择用更一般性的方法去解决这个题,就是那一堆东西了. 首先,我们把两个串同时插入一个广义SAM里,拓扑排序维护每个节点 ...

  3. 【回文自动机】bzoj3676 [Apio2014]回文串

    回文自动机讲解!http://blog.csdn.net/u013368721/article/details/42100363 pam上每个点代表本质不同的回文子串.len(i)代表长度,cnt(i ...

  4. 算法学习:回文自动机

    [定义] [自动机] 参照AC自动机 [前置知识] [AC自动机] [manacher] 其实不学这两个也可以,但是学过之后会更方便理解 [解决问题] 主要解决回文串的问题 能求出   字符串中回文子 ...

  5. 回文树(回文自动机) - URAL 1960 Palindromes and Super Abilities

     Palindromes and Super Abilities Problem's Link:  http://acm.timus.ru/problem.aspx?space=1&num=1 ...

  6. 【知识总结】回文自动机(Palindrome_Automaton)

    参考资料:Palindromic Tree--回文树[处理一类回文串问题的强力工具](请注意,其中似乎有一些错误) 回文自动机似乎和回文树是同一个东西qwq? 回文自动机(PAM)是一种处理回文串的工 ...

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

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

  8. BZOJ2342[Shoi2011]双倍回文——回文自动机

    题目描述 输入 输入分为两行,第一行为一个整数,表示字符串的长度,第二行有个连续的小写的英文字符,表示字符串的内容. 输出 输出文件只有一行,即:输入数据中字符串的最长双倍回文子串的长度,如果双倍回文 ...

  9. BZOJ4044 Luogu P4762 [CERC2014]Virus Synthesis (回文自动机、DP)

    好难啊..根本不会做..基本上是抄Claris... 题目链接: (bzoj)https://www.lydsy.com/JudgeOnline/problem.php?id=4044 (luogu) ...

最新文章

  1. 发票管理及打印系统的部分代码
  2. 【效率】推荐10个堪称神器的网站!
  3. 工作199:获取接口token
  4. 定时执行java程序_如何让Java程序定时运行
  5. springboot2.0 redis EnableCaching的配置和使用
  6. linux python json,在Python中使用JSON
  7. 【cv2】:关于opencv-Python的函数
  8. 程序员不会SQL有多难?高级工程师:可能工作都找不到!
  9. python表白代码-如何用Python代码向心爱的姑娘花式表白?
  10. python matplotlib.pyplot 填充曲线下面积
  11. java截取utf8字符串_java中常用的字符串的截取方法
  12. Linux学习_系统文件IO
  13. 调整SumatraPDF暗黑模式
  14. 《P2SGrad Refined Gradients for Optimizing Deep Face Models》论文阅读
  15. 路由器指定dns解析服务器设置
  16. python主成分得分系数矩阵_用spss得出的成分矩阵就是初始因子载荷矩阵吗?成分得分系数矩阵又是什么...
  17. c语言把char转化为string,浅析string 与char* char[]之间的转换
  18. 京东商品主图定时替换,90%卖家这样做
  19. 区块链培训中的Golang为什么这么重要?怎么学?
  20. USB HUB芯片 FE8.1替代方案

热门文章

  1. 一个简单的jxl文件上传功能
  2. 手机壁纸网站源码 带全自动采集 响应式手机电脑端模板
  3. 大语言模型将如何影响软件开发?
  4. C#工业物联网和集成系统解决方案的技术路线(数据源、数据采集、数据上传与接收、ActiveMQ、Mongodb、WebApi、手机App)
  5. G1D5-Intriguing properties of neural networks
  6. 阿里云盘进场,安全星球何以成为云盘界的一股清流
  7. 网易5天python编程课_网易云课堂上自学编程?
  8. 如何在计算机面试中牵着面试官鼻子走?
  9. 谈谈win10的简单美化
  10. 3种将等高线转DEM的方法