2019徐州网络赛G

题意

给定s字符串,定义一个回文串的价值是这个回文串中不同字母的个数,求s中所有回文串的价值之和.

思路

马拉车加序列自动机.

代码

#include<bits/stdc++.h>
using namespace std;
const int maxn=610010;
char Ma[maxn];
int Mp[maxn];
int Next[maxn][30];
long long ans=0;
void Manacher(char s[],int len){int l=0;Ma[l++]='$';Ma[l++]='#';for(int i=1;i<=len;i++) Ma[l++]=s[i],Ma[l++]='#';Ma[l]=0;int mx=0,id=0;for(int i=0;i<l;i++){Mp[i]=mx>i?min(Mp[2*id-i],mx-i):1;while(Ma[i+Mp[i]]==Ma[i-Mp[i]]) Mp[i]++;if(i+Mp[i]>mx) mx=i+Mp[i],id=i;}int pos=1;ans=0;for(int i=2;i<l;i++){int L=i/2-Mp[i]/2+1;for(int j=0;j<26;j++){if(Next[pos][j]>=L&&Next[pos][j]!=0) ans+=Next[pos][j]-L+1;}// printf("ans=%d\n",ans);if(Ma[i]=='#') pos++;}
}
char s[maxn*2];
int main(){scanf("%s",s+1);int len=strlen(s+1);for(int i=1;i<=len;i++){for(int j=0;j<26;j++) Next[i][j]=Next[i-1][j];Next[i][s[i]-'a']=i;}Manacher(s,len);printf("%lld\n",ans);//system("pause");return 0;
}

2019徐州网络赛G相关推荐

  1. 2019徐州网络赛 G Colorful String 马拉车+后缀

    题目链接:https://nanti.jisuanke.com/t/41389 题解:马拉车处理回文串,每个位置记录后面每个字符出现的第一个位置,然后把每种字符额贡献加起来即可 #include< ...

  2. ICPC 2019 徐州网络赛

    ICPC 2019 徐州网络赛 比赛时间:2019.9.7 比赛链接:The Preliminary Contest for ICPC Asia Xuzhou 2019 赛后的经验总结 // 比赛完才 ...

  3. 2019南昌网络赛G. tsy‘s number(反演 + 积性函数O(n)预处理)

    tsy's number 推式子 ∑i=1n∑j=1n∑k=1nϕ(i)ϕ(j2)ϕ(k3)ϕ(i)ϕ(j)ϕ(k)ϕ(gcd(i,j,k))我们假定j=p1k1p2k2p3p3--pnkn,有ϕ(j ...

  4. 【2019.09.07】2019徐州网络赛

    补题地址:https://www.jisuanke.com/contest/3005?view=challenges 题目: A:✅ B:✅ C:✅ D:✅ E:✅ F: G:✅ 回文树+二进制统计回 ...

  5. The Preliminary Contest for ICPC Asia Xuzhou 2019 徐州网络赛 XKC's basketball team

    XKC , the captain of the basketball team , is directing a train of nn team members. He makes all mem ...

  6. 2019徐州网络赛 K.Center (STL)

    题意: 给n个点的坐标,求至少再加入几个点能使得所有点中心对称 分析: 中心对称的中心点肯定是给定的某一个点,或者某条连线上的中点 如果将一个点作为中心点,可以消去一个点 如果将连线中点作为中心点,可 ...

  7. 19 ICPC 徐州网络赛 G. Colorful String(回文树)

    传送门 题意:求出给出的字符串中所有回文字符串的不同字符和. 思路:回文树+二进制表示字符 (例如 a==1<<0,b==1<<1,c==1<<2,d==1< ...

  8. [The Preliminary Contest for ICPC Asia Xuzhou 2019 - 徐州网络赛E] XKC's basketball team

    XKC's basketball team XKC , the captain of the basketball team , is directing a train of nn team mem ...

  9. 2019 ICPC 徐州网络赛 J.Random Access Iterator

    2019 ICPC 徐州网络赛 J.Random Access Iterator 题目大意:给你n个点和n-1条边(树形结构),保证1为根节点,通过以下方式dfs遍历: 询问dfs到最深节点的概率(有 ...

最新文章

  1. find函数注意事项
  2. exfat驱动源码 linux_Linux 5.4内核正式发布:原生支持exFAT、AMD成最大赢家
  3. Tungsten Fabric SDN — for Akraino Based Network Edges
  4. Web服务器启动端口冲突问题
  5. 【数学建模】多属性决策模型(评价与决策)
  6. qduoj - 今晚一起打CF吧——Codeforces,十三亿人的ACM梦。(排序背包)
  7. 杭电acm2151题java的解法,杭电ACM题型分类
  8. Python学习之==文件操作
  9. linux主机添加discuz伪静态规则,Discuz! X2.5论坛win主机与linux主机伪静态设置方法...
  10. CleanCodeHandbook Chapter 1: Array/String(1-16)
  11. 高级软件工程第六次作业:东理三剑客团队作业-3
  12. $python正则表达式系列(5)——零宽断言
  13. mysql select_type
  14. Android Jni开发-实战篇(CMake)
  15. 使用netstat命令统计established状态的连接数
  16. [UOJ449][概率DP]集训队作业2018:喂鸽子
  17. 异步编排-CompletableFuture
  18. 测试策略与测试计划,有什么区别?
  19. iOS设备截图和Windows电脑互传,解决提交bug无图不能说明问题
  20. chatgpt 镜像版

热门文章

  1. C++大学教程(第二版)c++how to program Second Edition --电子工业出版社【美】harvey M.Deitel and paul James Deitel(更新中)
  2. Mysql - Mysql的建表建库
  3. JS EventListener
  4. CS61A Lab 4
  5. 如何实现双向绑定?底层原理是什么?
  6. Kindling the Darkness: A Practical Low-light Image Enhancer
  7. 湛蓝代码自动生成工具有感
  8. 简简单单使用Github
  9. android studio 61歌曲服务器搭建 歌曲app 下载 完整代码
  10. 大华视屏监控对接集成