随笔分类 -  字符串-后缀数组

摘要:CF427D Match & Catch 我其实很疑惑,为什么全网没人用 SA?这个题用 SA 不是巨水吗?我洗个澡就做出来了 我们可以用传统拼接字符串的方式拼接一下字符串,求一遍 SA 和 height 数组。 然后呢?其实很简单,题目让我们求的是最短的满足各只出现一次的连续公共字串。好,我们知道 阅读全文
posted @ 2021-02-15 23:17 huayucaiji 阅读(68) 评论(0) 推荐(0)
摘要:CF123D String 这个题和 CF811D 很像,代码只有一点点不同。题解也几乎一模一样 首先看到子串的问题容易想到后缀数组,所以我们可以先对字符串求一遍后缀数组以及 height 数组。 我们其实可以想得到单调栈。我们可以考虑对于 height 数组维护一个单调递增的栈。一旦我们要弹出栈顶 阅读全文
posted @ 2021-02-14 22:07 huayucaiji 阅读(131) 评论(0) 推荐(1)
摘要:CF802I Fake News (hard) 这个题和 CF123D 很像,代码只有一点点不同。 首先看到子串的问题容易想到后缀数组,所以我们可以先对字符串求一遍后缀数组以及 height 数组。 接下来怎么做?我们其实可以想得到单调栈。我们可以考虑对于 height 数组维护一个单调递增的栈。一 阅读全文
posted @ 2021-02-14 22:02 huayucaiji 阅读(84) 评论(0) 推荐(0)
摘要:【SDOI2008】Sandy的卡片 SA 经典题型:后缀数组+二分答案。 本题不难,我们需要先要处理题目重新定义的这个“相等”。这个处理方式和一道 HDU 的题很像,好像叫 Musical Theme。我们只需要记录数组相邻两个数字的变化量即可。因为在数字加上同一个数后,差是不变的。 我们把每个处 阅读全文
posted @ 2021-02-14 19:48 huayucaiji 阅读(68) 评论(0) 推荐(0)
摘要:【HAOI2016】 找相同字符 子串之类的问题,容易想到后缀数组。最后的问题是,在 \(A,B\) 中各找一个子串,有多少种情况这两个子串相同。 我们分别对 \(A\),\(B\),\(A+B\) 三个串求其后缀数组和 \(height\) 数组。我们可以求出在各自串中相同的子串数量,然后用容斥原 阅读全文
posted @ 2021-02-04 17:34 huayucaiji 阅读(52) 评论(0) 推荐(0)