其他字符串
文章平均质量分 50
其他类型的字符串
(xsj)
模拟只会猜题意
贪心只能过样例
DP一般看规律
数论只会gcd
计算几何瞎暴力
图论只会匈牙利
数据结构没学过
字符串只能干输入
展开
-
acwing 3188 manacher算法
题面题解我们用mancher算法,可以在O(n) 求出一个串的最大回文串我们要将题中给定的串变为奇数串,比如abaca 就会变成 $#a#b#a#c#a^用一个p[i] 数组表示以si为中心的最大回文串的半径,那么最后求一个最大的半径-1,就是所求结果我们在计算p[i] 的时候枚举维护一个右端点最大的回文串,mr即为右端点,mid为这个回文串的中点情况1 :当枚举的si在回文串内,以si为中心的回文串在维护的回文串内部,那么它的长度就和p[j] 的长度一样情况2原创 2021-05-21 21:31:22 · 187 阅读 · 2 评论 -
算法竞赛进阶指南---0x18(树的最小表示)树形地铁系统
题面题解1.题意就是问给定的字符串对应的树是否是同构的,我们先来说一下概念2. 对于树的遍历,从根节点开始0代表向下遍历,1代表向上回溯, 我们遍历树就会得到dfs序,也可以根据dfs序画出树,两颗拓扑序相同的树,我们就可以看作是同构树如何判断两个树是不是同构:求出每个树的最小表示。即与这棵树同构的最小的dfs序。如果两个树同构,那么这两个树的最小表示 应该相同。 求树的最小表示可以递归实现,求出所有子树的dfs序,然后从小到大排序拼接起来代码#include<bits原创 2021-02-24 23:47:23 · 342 阅读 · 0 评论 -
算法竞赛进阶指南---0x18 (最小表示法)Necklace
题面题解对于两个相同的字符串,我们可以直接比较它们的字典序最小的串是否相等即可,求最小字典序直接用最小表示法O(n)即可最小表示法解释 :–>点这里代码#include <cstring>#include <iostream>#include <algorithm>#include <string.h>using namespace std;const int N = 2000000;int n;char原创 2021-02-22 12:54:28 · 377 阅读 · 0 评论 -
最小表示法(循环同构串)
定义长度为n的序列,循环同构串中字典序最小的就是最小表示序列 4 3 2 1 ,它的循环同构串为 3 2 1 4 ,2 1 4 3 ,1 4 3 2 ,其中字典序最小的就是1 4 3 2解释我们最先想到的就是暴力枚举+判断 ,可以对所给序列进行枚举所有的字典序,然后找出最小的字典序即可,但是我们枚举+判断的时间复杂度是很高的,那么我们继续优化观察发现:对于给定的序列,其中如果所有元素都不重复的化,就例如上述例子,我们找到字典序最小的一定是以最小元素开头的,4 3 2 1 4原创 2021-02-13 23:38:15 · 918 阅读 · 0 评论 -
codeforces 1466 C Canine poetry (回文串)
题面题意题解对于一个字符串,如果它想要是一个回文字符串,那么它需要先保证它内部是一个回文字符串,像abcdhedcba这个字符串,他非常像回文字符串,但是它最中间的部分不能构成回文字符串,所以它外面的字符无论是什么也就都没有意义了。现在我们就根据这个性质,只扫描构成长度为2或3的回文字符串然后将它破坏掉,那么它可能所在的更长的回文字符串也就被破坏了。破坏字符串的时候,我们需要将原有的字符替换掉,那么如果替换的字符又和其他字符构成了新的回文字符串,而每个字符只能被替换一次,所以显然这个字符不原创 2021-02-02 11:24:08 · 204 阅读 · 0 评论