随笔分类 -  字符串

摘要:题面 英文题面 题意: \(n,k,q \leq 10^5\)。 题解:考虑到暴力的做法是用栈模拟括号序列匹配的过程,我们尝试使用分块,将元素个数减小至$O(\sqrt n)$级别。 对于每个块,我们用栈来模拟暴力匹配的过程。如果两个相邻的左右括号出现适配,那么我们称这个块是不合法的,那么所有完全包 阅读全文
posted @ 2020-07-14 14:11 Purple_wzy 阅读(215) 评论(0) 推荐(0)
摘要:题面 题意:对于一个$n$个数的可重集,求出所有$k$个出现次数为奇数的数$a$。 \(n \leq 3\times 10^6,k \leq 5000\),memory limit=3MiB。 题解:显然无法开下长为$n$的数组。那么考虑用哈希表进行压缩。也就是给每个数一个$key,value$。 阅读全文
posted @ 2020-07-09 11:57 Purple_wzy 阅读(313) 评论(0) 推荐(0)
摘要:英文题面 题意:给定一个字符串$S$。定义一个字符串$t$是"gray"串,当且仅当: $|t|$是奇数; 设$mid=(1+|t|)/2$,则$t_$仅在$t$中出现一次; $t_{1,\cdots mid-1}$和$t_{mid+1,\cdots |t|}$相同,且都为gray串。 定义一个串$ 阅读全文
posted @ 2020-07-09 11:54 Purple_wzy 阅读(228) 评论(0) 推荐(0)
摘要:题面 英文题面 题意:给一个串$S$,有$q$次操作: 1 i c表示将$i$位置的字符修改为$c$;2 l r t表示求$s_,s_{l+1},\cdots s_r$中$t$串的出现次数。 \(|S|,q,\sum |t| \leq 10^5\)。 题解:不难想到暴力kmp匹配,单次查询的时间复杂 阅读全文
posted @ 2020-07-09 07:37 Purple_wzy 阅读(166) 评论(0) 推荐(0)
摘要:题意:给定两个串$S$和$T$,定义$R_i$为在$s_i$和$s_{i+1}$之间插入$T$串得到的字符串。\(i \in [0,|S|]\) 有$Q$次询问,形如$(l,r,k,x,y)$,求满足 \(l \leq i \leq r\) 且 \(x\) \(\leq\) \(i\) mod \( 阅读全文
posted @ 2020-07-07 23:34 Purple_wzy 阅读(188) 评论(0) 推荐(0)
摘要:题面 英文题面 题意:给定一个长度为$n$的字符串$s$,有$m$次操作: 1.将区间$[L,R]$内的字符变为$ch$ 2.给定长度为$k$的字符串排列$t$,向$s$中添加字符,使得$s$以$t$为模式循环,求最少的循环次数。 \(n \leq 2\times 10^5 ,m \leq 2\ti 阅读全文
posted @ 2020-07-07 22:47 Purple_wzy 阅读(95) 评论(0) 推荐(0)
摘要:题面 英文题面 题意:给定一个长度为$n$的括号串,问有多少种不同的合法括号子串。 \(n \leq 5\times 10^5\) 题解: 先考虑暴力的做法:枚举左端点,然后每次扫一遍,有括号平衡就将其加入答案,再用哈希+map判一下重。 再考虑不需要去重时的快速做法。 令$s_i$表示前$i$个字 阅读全文
posted @ 2020-07-07 22:35 Purple_wzy 阅读(162) 评论(0) 推荐(0)
摘要:题面 英文题面 题意:定义两个字符串$s$和$t$($s$的长度为$m$)的乘积为: \(t+s_1+t+s_2+\dots+t+s_m+t\) 。 定义一个字符串的美丽度为最长的相同字母连续子序列的长度。现在给出$n$个字符串$p_i$ ,问 $((p_1p_2)p_3)\dots p_n$的美丽 阅读全文
posted @ 2020-07-07 22:18 Purple_wzy 阅读(113) 评论(0) 推荐(0)
摘要:题面 Problem C. Conquer the World &&loj6405 征服世界 题目大意:给定一棵树,树有边权。每个点上有$a_i$个士兵,且每个点最终需要$b_i$个士兵。 求最小代价。 \(n\) \(\leq\) $2.5*10^5$,\(a_i\),\(b_i\) \(\leq 阅读全文
posted @ 2020-06-29 20:43 Purple_wzy 阅读(818) 评论(0) 推荐(0)
摘要:"题面" "英文题面" 题解: 由于要统计字符串在某一串中的出现情况,不难想到用线段树合并。 对所有串建立广义SAM,然后拓扑排序,沿着link边向上合并即可。 每次查询,只需保存每个串终止位置的节点编号,在线段树上查询。 注意建立广义SAM时不能简单地把last设为1,还要注意不能每次都新加节点, 阅读全文
posted @ 2020-01-14 07:45 Purple_wzy 阅读(198) 评论(0) 推荐(0)
摘要:题面:https://www.lydsy.com/JudgeOnline/problem.php?id=3413 题解: 首先考虑匹配次数的意义。可以看出匹配的过程就是拿$A$串的所有前缀 和$B$串一一匹配。考虑$A$串的每一位。设当前位一共被匹配了$f[i]$次, 那么答案即为$\sum$ $f 阅读全文
posted @ 2020-01-09 11:29 Purple_wzy 阅读(138) 评论(0) 推荐(0)
摘要:题面:https://www.lydsy.com/JudgeOnline/problem.php?id=2555 题解: 如果没有修改操作,这就是一道SAM模板题。 有了修改操作后,发现fail树可能会有断边的过程, 不难想到使用LCT维护fail树。 每次加边时,需要将贡献也一并加入LCT的节点中 阅读全文
posted @ 2020-01-09 08:53 Purple_wzy 阅读(173) 评论(0) 推荐(0)