
字符串
LowestJN
强省弱OIer
展开
-
[AtCoder ARC077 .F] [字符串] [乱搞] SS
翻译下题解…可以发现一次变化是f(SS)=STSTf(SS)=STST,其中TT是S的一个前缀,|T||T|是S的最小周期 那么我们就只需要考虑变化g(S)=STg(S)=ST,因为不断变化1010010^{100}次的话,后面的部分就可以省去设TT的长度为dd,SS的长度是nn 可以证明如果d|nd|n,那么g(ST)=STTg(ST)=STT 否则,g(ST)=STSg(ST)=STS那么原创 2017-07-02 18:03:19 · 988 阅读 · 0 评论 -
[字符串HASH][复杂度分析] NOI2017 .Day1 T2 蚯蚓排队
因为k只有50,所以先把所有询问的字符串拆开,加到hash表里,然后用链表模拟整个过程,暴力把新产生的或消失的字符串在hash表里更新答案,复杂度就是对的 具体做法和时间复杂度分析可以看lzz的知乎回答 https://www.zhihu.com/question/62597216#include <cstdio>#include <iostream>#include <algorithm>原创 2017-07-24 12:32:21 · 1583 阅读 · 0 评论 -
[字符串HASH && 阈值]Codeforces 741E.Arpa’s abnormal DNA and Mehrdad’s deep interest
传送门 这题写的心态都崩了…被卡常被卡HASH首先可以把每个位置插入T后的字典序排序出来。 发现两个不同的位置i,j中插入T,两个字符串有一段前缀一段后缀是相同的,中间可以按T的端点分成3部分,只要比较这3部分的字典序就可以了。我被卡常就是因为用了字符串hash来比较字典序…那么写一个比较函数,然后直接用std::sort就好了询问也很麻烦。 发现第二个限制可以写成x+⌊ik⌋×k≤i≤y+⌊原创 2017-08-28 13:21:55 · 811 阅读 · 0 评论 -
[回文串 线段树] Codeforces Gym100032 ICL Cup 2012 K. Subpalindromes
题意是求一个区间里回文串的个数(出现位置不同的回文串算不同)用马拉车算出以每个点为中心的最长回文串长度考虑点 iii,iii点到以它为中点的最长的回文串的端点长度为 xxx那么它对一个询问的贡献是 min{i−L,R−i,x}min{i−L,R−i,x}\min\{i-L,R-i,x\}把询问的区间分成两部分 [L,mid][L,mid][L,mid],[mid,R][mid,R]...原创 2018-03-11 19:14:16 · 511 阅读 · 1 评论