Processing math: 100%

随笔分类 -  字符串

摘要:CF1483F - Exam 题目大意 给定n个不同串si,令sisj表示sisj的子串 求所有二元组(i,j)(ij)满足 sisj,ki,kj,sisksj阅读全文
posted @ 2021-05-27 21:45 chasedeath 阅读(113) 评论(0) 推荐(0) 编辑
摘要:CF1037H - Security 题目大意 给定一个串S,每次查询一个区间[l,r]和一个串T[l,r]\(\)>T的最小的子串R 分析 复习\text 显然可以枚举T匹配R的长度,然后枚举下一位字符,判断形成的串是否在[l,r]内有出现 匹配问题 阅读全文
posted @ 2021-05-26 10:29 chasedeath 阅读(101) 评论(0) 推荐(1) 编辑
摘要:CF1276F - Asterisk Substrings 题目大意 给定串S,|S|=n,设一个串的子串集合为Sub(S)|Sub(S)Sub(+S[2:n])Sub(S[1:1]++S[3:n])| 其中*表示特殊字符而不是通配符 分析 阅读全文
posted @ 2021-05-09 08:12 chasedeath 阅读(73) 评论(0) 推荐(0) 编辑
摘要:CF1082F - Speed Dial 题目大意 给定n个电话号码,你可以随意生成k个快捷键,每个快捷键是一个数字串 最终拨号方式: 选择 至多一个 快捷键按下,对于剩余部分手动补全,且不允许退格 每个电话号码有拨打次数,最小化手动补全部分的长度总和 分析 如果每次选定一个集合使其公用一个 阅读全文
posted @ 2021-05-08 18:59 chasedeath 阅读(60) 评论(0) 推荐(0) 编辑
摘要:CF1366G - Construct the String 题目大意 给定一个初始串S和目标串T 其中S除了包含字母外还包含删除标记'.' 具体的S表示的字符串f(S),就是依次加入每个字母,或者在删除标记处删除上一个字符(不存在这个字符则非法) 求删除S中最少的字符,使得 阅读全文
posted @ 2021-05-08 18:49 chasedeath 阅读(94) 评论(0) 推荐(0) 编辑
摘要:CF1393E2 - Twilight and Ancient Scroll (harder version) 题目大意 给定n个串Si,求在每个串中至多删除一个字符(可以删到空) 最终Si字典序单调不减的方案数 dp 显然是记录上一个串删除的位置j,得到dpj,依次考虑 阅读全文
posted @ 2021-05-07 11:55 chasedeath 阅读(150) 评论(0) 推荐(0) 编辑
摘要:「HAOI2018」字串覆盖 这自然有后缀数组和后缀自动的写法,我写的是后缀数组 现对于A,B两串拼接后建立\text 对于查询的四个参数[s,t,l,r]\(,在\)\text\(上找到能够匹配\)[l,r]\(的\)\text\(区间\)[l',r'] 这个$[l',r']\(就用\ 阅读全文
posted @ 2021-04-07 14:04 chasedeath 阅读(112) 评论(0) 推荐(0) 编辑
摘要:[NOI Online 2021 提高组] 积木小赛 题目大意:给定串A,B,求B中有多少本质不同的连续子段是A的子序列 n3000 暴力枚举B中的子段,同步维护与A的匹配指针p 每次插入一个字符c,找到Ap+1之后第一个字符c,令 阅读全文
posted @ 2021-03-27 12:15 chasedeath 阅读(126) 评论(0) 推荐(0) 编辑
摘要:「BalticOI 2020」病毒 设点集大小为N,边集总长度k=M,模板串总长L= 涉及到多串匹配的转移问题,容易想到\text自动机 因为本题状态非常少,可以暴力矩阵维护转移,暴力计算由状态i转移至状态j,且中途不匹配的最小长度 有NL2个状态 阅读全文
posted @ 2021-03-09 22:13 chasedeath 阅读(131) 评论(0) 推荐(2) 编辑
摘要:「ROI 2016 Day2」二指禅 考虑对于每个点,有前缀和后缀两种转移 对于两种转移分别建立\text树,并且维护最小权值,对于dpi,可以匹配一段后缀从j<i得到 也可以匹配一段前缀更新j>i,分别O(n)枚举在两棵树上匹配即可完成转移 暴力转移复杂度为O(n2) 阅读全文
posted @ 2021-02-20 10:02 chasedeath 阅读(349) 评论(0) 推荐(0) 编辑
摘要:「ROI 2019 Day2」模式串查找 (口胡) 设S=|wi| 显然我们需要一个树形数据结构来维护题目中添加字符的操作 归纳一下,需要实现的操作就是: 1.添加一个新串 2.在当前串中分裂一段区间[L,R] 3.将一个串复制k次 将每一个单字符视为一个节点,考虑用一个可持 阅读全文
posted @ 2021-02-17 16:25 chasedeath 阅读(178) 评论(0) 推荐(1) 编辑
摘要:「CTSC2016」香山的树 (KMP+dp) 题目大意 对于所有的串,满足: 其是本身的最小循环同构。 其最小循环同构位置唯一。 给定一个这样的串,求其字典序在所有合法串中的 rank,以及求 rank=k 的串。 简要分析 这是一个暴力的做法,有一定优 阅读全文
posted @ 2020-11-08 14:25 chasedeath 阅读(342) 评论(0) 推荐(0) 编辑
摘要:「ICPC World Finals 2019 何以伊名始 本题现已知四种做法,如果不会后缀系列结构可以直接看Solution4 设初始树大小和查询总长均为O(n) Solution1 由于查询只有1e6,因此出现的不同查询串长度最多O(106)=1500种 考虑对于每一种 阅读全文
posted @ 2020-09-18 21:44 chasedeath 阅读(144) 评论(0) 推荐(0) 编辑
摘要:COCI2013-2014 Contest#1 F SLASTIČAR 其实挺妙的一个数据结构题 题意: 给定一个A串,对于查询的每个B串,从头开始匹配匹配A的每个后缀,每次匹配失败的代价是+1可,匹配成功的代价是|B|,且立即停止,求代价总和 设A串长为n,查询个 阅读全文
posted @ 2020-09-01 19:37 chasedeath 阅读(211) 评论(0) 推荐(1) 编辑
摘要:#[HDU-6791] 2020HDU多校第三场T1(回文自动机) 前置知识: 1.字符串的\text 2.回文自动机 3.回文串与\text 3.1:回文串的\text也是回文串 若有回文串S的一个:T,则$S_{1,|T|}=S_{|S|-|T|+1,|S|}=r 阅读全文
posted @ 2020-07-29 15:46 chasedeath 阅读(335) 评论(0) 推荐(0) 编辑
摘要:回文自动机 (PAM,Palindrome Automaton) 如果学习了\text\(自动机和后缀自动机(\)\text),那么这个冷门算法其实非常简单 约定:原字符串为S,长度为|S| 结构介绍 自动机节点意义: $\text\(没有复杂的结构,每个节点对应了一种回文子串,节点个数 阅读全文
posted @ 2020-07-29 14:32 chasedeath 阅读(347) 评论(0) 推荐(0) 编辑
摘要:字符串的Period(周期),Border 前置知识:kmp\text自动机 约定:字符串S的长度为|S|,原串的长度为n[l,r]的子串为Sl,r,下标从1开始,前缀S1,i=prei,后缀Si,n=sufi,设$ 阅读全文
posted @ 2020-07-29 14:20 chasedeath 阅读(2772) 评论(0) 推荐(4) 编辑
摘要:「CTS2019 | CTSC2019」重复(Kmp) Part1 首先我们考虑对于一个已经确定的t串,如何检查是否合法 对于s串建立\text\((\)\text自动机当然可以), 如果当前\text指针j\text树上的祖先所对应的所有下一个位置$s[ancestor+ 阅读全文
posted @ 2020-05-22 13:00 chasedeath 阅读(275) 评论(0) 推荐(0) 编辑
摘要:"HDU 4117" 构建AC自动机 dp从每一个的子串上转移过来 转移过程中不断匹配,然后统计fail树上前缀的最大值,这是一个动态的过程 于是我们用树剖线段树动态维护 阅读全文
posted @ 2020-05-21 15:59 chasedeath 阅读(170) 评论(0) 推荐(0) 编辑
摘要:"HDU 5069" 求后缀与前缀的最大匹配长度 我写的很暴力 首先对于前一个字符串,直接匹配到末尾,其实接下来就是求fail树上的这段前缀上的每一个点与后一个串在trie树上的位置的最长公共前缀长度 我的做法是:将trie树树剖,依次访问fail树上的每一个节点回答询问 访问$fa 阅读全文
posted @ 2020-05-21 15:57 chasedeath 阅读(118) 评论(0) 推荐(0) 编辑

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