随笔分类 - 字符串
摘要:~~这题我写了一天后交了一发就过了我好兴奋啊啊啊啊啊啊~~ 题目 "洛谷 4482" 分析 这题明明可以在线做的,为什么我见到的所有题解都是离线啊 …… ~~什么时候有机会出一个在线版本坑人。~~ 题目的要求可以转化为求出一个最大的 $i(i include include include incl
阅读全文
摘要:我好像国赛以后就再也没有写过 OI 相关的博客 qwq Upd: 这篇博客是 NOIP (现在叫 CSP 了)之前写的,但是咕到 CSP 以后快一个月才发表 …… 我最近这么咕怎么办啊 …… 题目 "洛谷 5537" 分析 这道题可以说是非常神了。这题看上去无从下手,但是 ~~通过膜拜题解~~ 后能
阅读全文
摘要:题目: "洛谷 5284" 分析: 首先不要问我标题里的「后缀树」是什么,我也不会,瞎写的 …… (传说就是反串后缀自动机的 fa 树?) 前置技能: "【知识总结】后缀自动机的构建" 首先有一个很 naive 的想法:要求的 $T$ 是由若干个 $A_i$ 串拼接而成的,所以可以处理出对于每个 $
阅读全文
摘要:Problem: = "洛谷3546" Analysis: = ~~I gave up and saw other's solution when I had nearly thought of the method ... What a pity~~ Let's define a border o
阅读全文
摘要:题目: = "Codeforces1109B" 我打的是 Div2 ,所以我看到的题号实际上是 1113D …… 考场上傻了没敢大力猜结论没做出来这道题,不幸掉分…… 1869 1849 嘤嘤嘤 翻译: = 读书是萨沙的爱好之一。有一次,他读书时了解到一个不同寻常的角色。这个角色这样介绍自己:“我在
阅读全文
摘要:参考资料: "Palindromic Tree——回文树【处理一类回文串问题的强力工具】" (请注意,其中似乎有一些错误) 回文自动机似乎和回文树是同一个东西qwq? 回文自动机(PAM)是一种处理回文串的工具。它的每个结点表示一个本质不同的回文串,转移边$c$表示在当前字符串的首尾分别加一个字符$
阅读全文
摘要:题目: = "洛谷4770" "UOJ395" 分析: = 一个很好的SAM应用题…… 一句话题意:给定一个字符串$S$。每次询问给定字符串$T$和两个整数$l$、$r$,求$T$有多少个 本质不同 的非空子串 不是 $S[l,r]$的子串。 首先显然是“正难则反”,求有多少个本质不同的非空子串是$
阅读全文
摘要:自己yy的方法yyyyyyyy着就A了,写篇博客庆祝一下。 题目: = "洛谷3181" 分析: = SAM(可能是)模板题(不会SAM的同学戳我: "【知识总结】后缀自动机的构建" )。 对$s1$建出SAM,用$s2$在上面跑。用$size[i]$表示结点$i$的$Right$集合大小(直接拓扑
阅读全文
摘要:参考资料:(APIO2018)从DFA到后缀自动机_张云帆 又一个学了很多遍都不会的算法/数据结构……(话说我怎么每篇知识总结一开始都是这句话qwq) 先orz后缀自动机之神兔崽子TzzDzz(顺便喂它最喜欢吃的叶子) "OrzTzzDzz" 前排提示:由于作者很菜,且本文的目标是快速理解并写出 ~
阅读全文
摘要:题目: = "洛谷1117" 分析: = ~~定义把我校某兔姓神犇Tzz和他的妹子拆分,为“优秀的拆分”~~ 随便写个哈希就能有$95$分的好成绩…… 我的$95$分做法比fei较chang奇葩,不想浪费时间的可以忽略解法一qwq 解法一: 用$n$个vector记录对于每个点$i$,哪些长度$le
阅读全文
摘要:又是一个学了n遍还没学会的算法…… 后缀数组是一种常用的处理字符串问题的数据结构,主要由 $\mathrm{sa}$ 和 $\mathrm{rank}$ 两个数组组成。以下给出一些定义: $\mathrm{str}$ 表示处理的字符串,长度为 $\mathrm{len}$ 。(下标从$0$开始) $
阅读全文
摘要:题目: = "CodeForces727E" 分析: = 看到字符串比较,肯定想到哈希啊……现学的哈希,先丢两个重要的公式 ($seed$是大于字符集大小的质数,$p$是大质数) $$hash[i]=(hash[i 1] seed+s[i])mod \ p$$ $$hash[l,r]=(hash[r
阅读全文
摘要:题目: = "BZOJ2565" 分析: = 首先看到回文串,肯定能想到Manacher算法。下文中字符串$s$是输入的字符串$str$在Manacher算法中添加了字符‘ ’后的字符串 (构造方式如下) string s = " "; for (int i = 0; i include using
阅读全文
摘要:题目: = "POJ3280" "洛谷2980" 分析: = 首先,考虑只可以加字的情况 设$s[i]$表示第$i$个字符,$add[i]$表示加上一个字母$i$的花费,$dp[i][j]$表示把区间$i$~$j$变成回文串的花费,那么 1.如果$s[i]=s[j]$,那么只需要把$(i+1)$~$
阅读全文

浙公网安备 33010602011771号