
字符串
文章平均质量分 89
lqhsmash
这个作者很懒,什么都没留下…
展开
-
后缀系列例题五
2022年01月26日,第十二天后缀系列例题五1. 题目链接:P3181 [HAOI2016]找相同字符思路1:后缀数组加容斥原理解决,时间复杂度 O(nlog n)O(nlog\ n)O(nlog n) ,首先我们将问题转化,所有相同子串的对数,相当于所有来自不同字符串后缀的 LCPLCPLCP 之和,这是为什么呢,其实是可以看成固定 LCPLCPLCP 的第一个字符,让后面的字符不断连接上去构成若干新方案,而这个方案数量就是 LCPLCPLCP 的长度。我们考虑构建后缀数.原创 2022-01-26 23:59:22 · 493 阅读 · 0 评论 -
后缀系列例题四
2022年01月25日,第十一天1. 题目链接:SP7258 SUBLEX - Lexicographical Substring Search思路:后缀自动机解决,时间复杂度 O(nT)O(nT)O(nT) ,根据后缀自动机从源点出发得到每个状态都是原串的子串,且不重不漏,那么我们先建出 SAMSAMSAM ,然后在拓扑序上 dpdpdp 出每个点的路径数,然后统计答案时就在自动机上 dfsdfsdfs ,类似平衡树找第 kkk 小那样做。#include <bits/stdc++.h&g.原创 2022-01-25 23:48:04 · 504 阅读 · 0 评论 -
后缀系列例题三
2022年01月24日,第十天1. 题目链接:P3763 [TJOI2017]DNAAmazing!!!Amazing!!!Amazing!!! 这题居然有四种思路解决。思路1:多项式解决,时间复杂度 O(nlog n)O(nlog\ n)O(nlog n),总共跑了 121212 次 FFTFFTFFT ,常数过大,开 O2O2O2 才 ACACAC。由于 DNADNADNA 序列最多有 444 种不同的字符,我们可以考虑如下做法,分别考虑每一个字符 ccc ,对于两个串 s.原创 2022-01-24 22:06:31 · 1870 阅读 · 0 评论 -
后缀系列例题二
2022年01月23日,第九天后缀系列例题二1. 题目链接:P4051 [JSOI2007]字符加密思路:此题涉及到字符串排序,因此我们很容易能想到用 SASASA ,将原串拷贝一份到后面,这样原串长度变为原来两倍,直接上后缀数组按题目要求输出答案即可。#include <bits/stdc++.h>#define ull unsigned long long#define ll long long#define re register#define endl '\n'u.原创 2022-01-23 22:56:42 · 286 阅读 · 0 评论 -
后缀系列例题一
2022年01月22日,第八天后缀系列模板题借一张后缀自动机经典图片镇镇楼……1. 题目链接:P3804 【模板】后缀自动机 (SAM)思路:直接上 SAMSAMSAM ,然后做个基数排序倒序遍历求和即可,本质是作后缀树(后缀链接反向即是)的前缀和。换句话说,我们也可以建后缀链接的反向边求树上前缀和,再计算贡献。#include <bits/stdc++.h>#define ull unsigned long long#define ll long long#define .原创 2022-01-22 23:14:22 · 388 阅读 · 0 评论 -
初识SAM——后缀自动机
2022年01月20日,第七天后缀自动机(SAM)后缀自动机 是一个能解决许多字符串相关问题的有力数据结构。以下的字符串问题都可以在线性的时间复杂度内通过 SAMSAMSAM 解决。在另一个字符串中搜索一个字符串的所有出现位置。计算给定的字符串中有多少个不同的子串。直观上,字符串的 SAMSAMSAM 可以理解为给定字符串的所有子串的压缩形式。一些保证线性的性质:对于一个长度为 nnn 的字符串 sss ,它的 SAMSAMSAM 中的 状态数 不会超过 2n−12n - 12n−.原创 2022-01-20 22:47:48 · 1157 阅读 · 0 评论