2019.03.01 bzoj2555: SubString(sam+lct)】的更多相关文章

传送门 题意简述: 要求在线支持两个操作 (1):在当前字符串的后面插入一个字符串 (2):询问字符串s在当前字符串中出现了几次?(作为连续子串) 思路: 考虑用lctlctlct来动态维护samsamsam的rightrightright集合. 代码: #include<bits/stdc++.h> #define ri register int using namespace std; const int N=1200005; char s[N]; int n; string str; i…
2555: SubString Time Limit: 30 Sec  Memory Limit: 512 MBSubmit: 2548  Solved: 762 Description 懒得写背景了,给你一个字符串init,要求你支持两个操作 (1):在当前字符串的后面插入一个字符串 (2):询问字符串s在当前字符串中出现了几次?(作为连续子串) 你必须在线支持这些操作. Input 第一行一个数Q表示操作个数        第二行一个字符串表示初始字符串init        接下来Q行,每…
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2555 [题意] 给定一个字符串,可以随时插入字符串,提供查询s在其中作为连续子串的出现次数. [思路] 子串的出现次数,这使我们想到了后缀自动机,如果没有插入操作,则出现次数为字符串对应节点|right|集的大小. Right的递推方法为:|fa->right| <- |right| 如果暴力做的话,可以每一次插入都重新计算right.时间复杂度为O(mn). 因为需要不断地插入字…
[SPOJ]Longest Common Substring(后缀自动机) 题面 Vjudge 题意:求两个串的最长公共子串 题解 \(SA\)的做法很简单 不再赘述 对于一个串构建\(SAM\) 另外一个串在\(SAM\)上不断匹配 最后计算答案就好了 匹配方法: 如果\(trans(s,c)\)存在 直接沿着\(trans\)走就行,同时\(cnt++\) 否则沿着\(parent\)往上跳 如果存在\(trans(now,c),cnt=now.longest+1\) 否则,如果不存在可行的…
2019浙师大校赛(浙大命题)(upc复现赛)总结 早上九点开始.起得迟了,吃了早饭慌慌张张跑过去,刚到比赛就开始了. 开始分别从前往后和从后往前看题,一开始A题,第一发WA,第二次读题发现漏看了还有空格,再交过.D题去重输出不同数字个数,J题忘了.B题和宝儿说完ta就有了思路,不过一开始看差了范围数组开小了,RE了几发. Ps: B题考虑一下就会发现,题目要求的是找三个数a.b.c,使a+ b- c> 0,即a+ b> c(找三边使之可以构成一个三角形).当a+ b= c时,a,b,c为斐波…
Description 懒得写背景了,给你一个字符串init,要求你支持两个操作 (1):在当前字符串的后面插入一个字符串 (2):询问字符串s在当前字符串中出现了几次?(作为连续子串) 你必须在线支持这些操作. Input 第一行一个数Q表示操作个数 第二行一个字符串表示初始字符串init 接下来Q行,每行2个字符串Type,Str Type是ADD的话表示在后面插入字符串. Type是QUERY的话表示询问某字符串在当前字符串中出现了几次. 为了体现在线操作,你需要维护一个变量mask,初始…
BZOJ2555. SubString 要求在线询问一个串在原串中出现的次数,并且可以在原串末尾添加字符串 如果没有修改的话,考虑建出\(parent\)树之后统计每个\(endpos\)节点的\(right\)集合大小,现在要求动态添加字符,那么由于\(parent\)树的形态会变,所以用\(LCT\)来维护\(parent\)树,具体就是增删\(link\)边 \(LCT\)一直以初始状态为根,每次提出来初始状态到当前节点的链然后更新一条链上的值即可,根一直没变,不需要\(makeroot\…
Description SC省MY市有着庞大的地下水管网络,嘟嘟是MY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可能要将一定量的水从x处送往y处,嘟嘟需要为供水公司找到一条从A至B的水管的路径,接着通过信息化的控制中心通知路径上的水管进入准备送水状态,等到路径上每一条水管都准备好了,供水公司就可以开始送水了.嘟嘟一次只能处理一项送水任务,等到当前的送水任务完成了,才能处理下一项. 在处理每项送水任务之前,路径上的水管都要进行一系列的准备操作,如清洗.消毒等等.嘟嘟在…
1219 遍历计数. #include<bits/stdc++.h> #define QAQ 0 using namespace std; ]; ]; int main(){ )){ memset(cnt,,sizeof(cnt)); int l=strlen(a); ;i<l;i++){ cnt[a[i]]++; } for(int i='a';i<='z';i++){ printf("%c:%d\n",i,cnt[i]); } printf("\n…
也许应该从Day -1(2019年11月14日周四)开始说起? 卑微的我们在学长的怂恿下终于...停课了(哇我们太菜了,只停一天半的课有个卵用 早读后我带头去办公室请假,飞哥很大方地答应了,同时免了我们星期天晚上的晚自习,然后我们几个背上书包愉快地逃了语文考试(停课不用写作业简直不要太爽 ↑↑↑ 从学长说说里偷的图hh 下午机房的气氛很欢乐,几个学长(加起来可能不到三岁)在过道上你推我我推你,考前很亢奋呐ヾ(o◕∀◕)ノヾ 放学后学长们去蛋糕房把之前订的蛋糕领回来了(吹爆这些大方可爱的学长n(*…