博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

随笔分类 -  字符串——后缀自动机

摘要:我一定是闲的无聊才会去做这个... 阅读全文
posted @ 2019-04-26 09:02 SovietPower 阅读(535) 评论(0) 推荐(2) 编辑
摘要:恶心人的题... 阅读全文
posted @ 2019-04-08 20:15 SovietPower 阅读(277) 评论(0) 推荐(0) 编辑
摘要:2019.3.5 青岛普转肯模拟赛day1暨徐源粉丝线下见面会 期望得分:70+20+40 实际得分:30+20+20 比赛链接 A.智慧树tree(树形DP NTT Bluestein) 题目链接 根据群里dalao的聊天记录,瞎猜理解了一波,重新理解了一遍DFT和NTT...会记在下面($d 阅读全文
posted @ 2019-03-10 08:47 SovietPower 阅读(216) 评论(0) 推荐(0) 编辑
摘要:为什么要写这个呢... 因为毒瘤出题人模拟赛搬原题→_→ 阅读全文
posted @ 2019-01-15 08:17 SovietPower 阅读(2122) 评论(0) 推荐(2) 编辑
摘要:无摘要*2 阅读全文
posted @ 2019-01-07 20:24 SovietPower 阅读(184) 评论(0) 推荐(0) 编辑
摘要:"LOJ" "洛谷" "BZOJ" 考虑l=1,r=|S|的情况: 对S串建SAM,T在上面匹配,可以得到每个位置i的后缀的最长匹配长度mx[i]。 因为要去重,对T也建SAM,计算上面所有节点的答案。记pos[i]表示i节点第一次出现的下标(同一节点代表的串出现的位 阅读全文
posted @ 2018-10-20 14:58 SovietPower 阅读(315) 评论(0) 推荐(1) 编辑
摘要:给定一个字符串s[1]。一个字符串序列s[ ]满足s[i]至少在s[i1]中出现过两次(i2)。求最大的k,满足存在s[1]s[k]阅读全文
posted @ 2018-09-27 17:33 SovietPower 阅读(430) 评论(0) 推荐(0) 编辑
摘要:给出两个串S,T,求TS中出现了多少次。出现是指。可以有3次不匹配。 阅读全文
posted @ 2018-09-20 22:08 SovietPower 阅读(300) 评论(0) 推荐(1) 编辑
摘要:对于每个串,求在n个串中只在该串中出现过的子串的数量。 阅读全文
posted @ 2018-09-20 20:17 SovietPower 阅读(217) 评论(0) 推荐(0) 编辑
摘要:给定串Sm个串TiQ次询问,每次询问l,r,pl,pr,求S[plpr]TlTr中的哪个串出现次数最多,输出最多次数以及它是T中的第几个。若最多的有多个,输出下标最小的。 阅读全文
posted @ 2018-07-25 21:16 SovietPower 阅读(412) 评论(5) 推荐(0) 编辑
摘要:给定母串S,求模式串的循环同构串在S中的出现次数。 阅读全文
posted @ 2018-07-18 16:58 SovietPower 阅读(353) 评论(0) 推荐(0) 编辑
摘要:"题目链接" 假设我们知道一个节点表示的子串的和sum,表示的串的个数cnt,那么它会给向数字x转移的节点p贡献 sum×10+c×cnt 的和。 建广义SAM,按拓扑序正序递推就行了。 网上怎么都是加的通配符。。可以在每个串后加 ,没什么不同,还是枚举转移时枚举到 就可 阅读全文
posted @ 2018-07-18 15:43 SovietPower 阅读(192) 评论(2) 推荐(0) 编辑
摘要:"题目链接" 首先二分答案L。然后就是判断能否将原串划分出一些长度不小于L的子串,这些子串要是给定n个串中的某个串的子串,且满足它们的长度之和不小于原串长度的90%。 贪心多长选一段什么的显然不对。老老实实DP。 设f[i]为到i划分出的最长长度(不用想什么奇奇怪怪的状态啊→_→),则$f[ 阅读全文
posted @ 2018-07-18 14:45 SovietPower 阅读(237) 评论(0) 推荐(0) 编辑
摘要:字符串DP四合一的神(po)题 阅读全文
posted @ 2018-07-16 21:00 SovietPower 阅读(200) 评论(0) 推荐(0) 编辑
摘要:"题目链接" 先考虑 假设S确定,使构造S操作次数最小的方案应是:对T建SAM,S在SAM上匹配,如果有S的转移就转移,否则操作数++,回到根节点继续匹配S。即每次操作一定是一次极大匹配。 简单证明:假设S="ABCD",T有子串"A","AB","CD","BCD",那么步数最小方案是选"AB"再 阅读全文
posted @ 2018-07-01 09:48 SovietPower 阅读(223) 评论(0) 推荐(0) 编辑
摘要:"题目链接" SAM: 能成为识别子串的只有那些|right|=1的节点代表的串。 设这个节点对应原串的右端点为r[i],则如果|right[i]|=1,即s[ [rileni+1,rilenfai]ri ]这些子串都出现一次。 那么对于[ r[i] len[ 阅读全文
posted @ 2018-06-30 19:48 SovietPower 阅读(219) 评论(0) 推荐(0) 编辑
摘要:给定两个字符串,求它们有多少个相同子串。相同串的位置不同算多个。 阅读全文
posted @ 2018-06-29 09:23 SovietPower 阅读(202) 评论(0) 推荐(0) 编辑
摘要:"题目链接" "后缀数组做法见这" 。 直接SAM+map。对于每个节点其产生的不同子串数为len[i] len[fa[i]]。 cpp //15932kb 676ms include include include include // define gc() getchar() define M 阅读全文
posted @ 2018-06-29 08:24 SovietPower 阅读(216) 评论(0) 推荐(0) 编辑
摘要:SAM求字符串的最小循环表示。 阅读全文
posted @ 2018-06-28 22:57 SovietPower 阅读(162) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示