随笔分类 - [字符串] 字符串相关
摘要:source 题解 设$s(l,r)$为$s$区间$(l,r)$的子串,$s_p$代表$s$在$p$处的字符。通过观察(小数据/推导/瞎猜/看题解)可以发现,如果最优解中含有$s(l,r)$,那么$s(l,n)$必然包含在最优解中。 证明: 假设答案中包含相邻的$s(i,r_i)$和$s(j,r_j
阅读全文
摘要:题目 source 题解 首先考虑暴力怎么做。直观感觉就是选择最小的后缀拼起来。但是当前的选择会受到后面字符串的影响。因此,考虑从后往前选择。假设当前选到第$i$个串(\(s[i]\)),第$i+1$到$n$后缀拼接的最小字符串为$t$。那么如果考虑到当前第$i$个串,最优选择就是字符串$s[i]+
阅读全文
摘要:介绍 计算字符串每个位置的最长回文串,也可以说是计算所有的回文区间。 原理 感觉算法思想和扩展kmp求extend数组十分类似。 先在第一个位置插入'$'以避免小于0的讨论,再在每一个字符之间都插入'#',为了避免对区间奇偶长度的讨论。 用len[i]代表位置i的最长回文右半区间的长度。由于经过上面
阅读全文
摘要:作用 用于求一个串的字典序最小的循环串 原理 详见oi-wiki 最小表示法 算法思想是贪心。时间复杂度O(n) int findmin(char s[]) { //n为字符串长度 int k = 0, i = 0, j = 1; while (k < n && i < n && j < n) {
阅读全文

浙公网安备 33010602011771号