【LCT/树链剖分 PAM】少女的六次真情告白(省选模拟Day3)(2022.9.23)

少女的六次真情告白

【问题描述】

你可知道我爱你想你恋你怨你深情永不变
题目背景:
少女 xuruifan 是一位萌萌的少女,她深深地爱着基佬 neither_nor,而在机房里,北京的地铁上,长春的大街上,她曾对基佬进行过五次真情告白,不过基佬并未接受,不甘心的她准备进行第六次真情告白,这一次,她准备用回文串的方式进行告白。
题目描述:
少女会不时地想出一些告白话语,少女觉得基佬会特别喜欢告白话语里的回文子串,于是她准备在告白的时候着重强调告白话语中的某个回文子串。她还会不时地觉得已经想出的告白话语的某个回文子串最能表达她的爱意,于是这时候她希望这个最能表达爱意的回文子串是她所着重强调的回文子串的后缀,但是她比较害羞,所以不希望她所强调的回文子串恰好就是她觉得最能表达她爱意的回文子串(但是如果所强调的回文子串是两个或更多她认为最能表达爱意的回文子串拼接起来的她则不在意),而且她认为最能表达爱意的回文子串也时常变化。看着她那萌萌的样子,你能否在每当她认为一个回文子串最能表达爱意时告诉她,在她已经想出的所有告白话语里,有多少个回文子串是她在告白的时候可以着重强调的呢?

【输入格式】

从文件 love.in 中输入数据。
第一行一个整数 n,表示少女的想法个数
接下来 n 行,每行一个整数 o 和一个字符串 s(s 由小写字母组成),o 代表少
女的想法种类,若 o 为 1,则说明少女又想出了一条告白话语,s 为她想出的告
白话语,若 o 为 2,则说明少女现在认为回文串 s 现在最能表达她的爱意,保证
s 是某个已经想出的告白话语的回文子串。

【输出格式】

输出到文件 love.out 中。
对于每个少女的第二种想法输出一行,代表在所有已经想出的告白话语中,
有多少个少女可以着重强调的回文子串。
全国信息学奥林匹克竞赛 第 3 试 少女的六次真情告白
第 5 页 共 5 页

【样例输入】

4
1 abaaba
2 a
1 abacaba
2 aba

【样例输出】

4
2

【样例说明】

第一个询问:满足条件的有:aba,aba,aa,abaaba
第二个询问:满足条件的有:abaaba,abacaba

看到回文后缀想到回文自动机,由于回文自动机的性质(有关回文自动机请看这里),建出回文树上fail树,求是多少个回文的后缀即是求当前子树内所有节点到根的距离和。
pts80做法:由于所有1操作都在2操作之前,在1跑完后直接统计全树字数和即可。
pts100做法:想要处理动态链加,要么离线用树剖维护,要么动态LCT维护。
懒于是两个都没打
然而最后发现最后两个点是可以用暴力跑出来的,所以我们直接数据分治

posted @   flywatre  阅读(61)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示