- 2025-01-04Manacher 学习笔记
\(\text{Manacher学习笔记}\)一、引入首先我们需要知道的是\(\text{Manacher}\)是解决回文串问题的有效工具。一个通用的问题模型是给定一个长度为\(n\)的字符串\(s\),统计该字符串中所有的回文子串的个数。\(\text{Manacher}\)算法可以在\(O(n)\)的时间复杂度内解决这
- 2025-01-03Luogu P4287 SHOI2011 双倍回文 题解 [ 紫 ] [ manacher ]
双倍回文:回文子串结论的经典应用。结论先放本题最关键的结论:一个字符串本质不同的回文子串最多只有\(n\)个。考虑如何证明:假设我们一个一个地在当前字符串(黑色部分)的结尾加入字符(红色部分),那么会出现如下情况:显然,加入红色字符后,字符串中最多只可能新出现一个本质不同的回文
- 2025-01-01Luogu P9646 SNCPC2019 Paper-cutting 题解 [ 紫 ] [ manacher ] [ 贪心 ] [ 哈希 ] [ BFS ]
Paper-cutting:思维很好,但代码很构式的manacher题。蒟蒻2025年切的第一道题,是个紫,并且基本独立想出的,特此纪念。判断能否折叠我们先考虑一部分能折叠需要满足什么条件。显然,这一部分需要是一个长度为偶数的回文串。那么横向和纵向会不会影响呢?答案是不会,因为横向折了之后,折
- 2024-12-13Manacher
Manacher,O(n)求字符串最长回文子串的良心算法首先,求最长回文字串的两个个方法,第一个是将所有字串列出来然后逐个判断,时间复杂度高达O(n3),这里不多赘述,然后就是选择一个字符,向两边扩展,判断是否相等,相等则长度自增。时间复杂度高达O(n2)然后就是可以用hash来判断回文,时间复杂度为O
- 2024-12-07【知识】Manacher
Manacher#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;constintN=2e7+10;intn;chara[N],b[N];intp[N];voidinit(){intk=0;b[k++]='$',b[k++]='#';
- 2024-12-07[学习笔记 #8] Manacher 算法
目录[学习笔记#8]Manacher算法[学习笔记#8]Manacher算法至今都不会exKMP/dk/dk/dk[]里的是我还不确定的。Manacher是对序列上每个点求它作为[回文中心]的最长回文子串长度/端点的算法,时间复杂度是\(O(|S|)\)。具体地,从左往右加入每个点,记录当前字符串的回
- 2024-12-11达梦归档定时备份和定时删除
达梦归档定时备份和定时删除1配置归档alterdatabasemount;alterdatabaseaddarchivelog'dest=C:\dmdbms\data\dmarch,TYPE=local,FILE_SIZE=1024,SPACE_LIMIT=40000';alterdatabasearchivelog;alterdatabaseopen;2打开代理--归档备份(每天凌晨一点备份归档文件)ca
- 2024-12-05【Linux合集】elasticsearch集群部署
部署elasticsearch注意:本次部署的用户为abc用户--需要注意当前用户是否存在/注册1、文件操作/系统配置调整#解压文件到指定目录/data/applicationssudotarxf/data/softwares/elasticsearch-7.13.3-linux-x86_64.tar.gz-C/data/applications/#做软连接sudoln-s/
- 2024-08-29Manacher 马拉车
Manacher马拉车,一种为了求字符串中最长的回文字串的算法。这个算法是从暴力的方法转化过来的,暴力肯定是枚举字符串每个字符作为中心,然后向外扩展,这样的复杂度为\(O(n^2)\)。而Manacher则是按照回文对称的性质的进行优化的,首先回文串有奇数串\(aba\)和偶数串\(abba\)如果
- 2024-08-20Manacher 算法
引入:万恶的字符串问题你是否看到字符串就感到迷茫而无所适从?你是否看到“border”“回文”等字眼就感到大脑宕机只会暴力?如果你像我一样有这种症状,不妨一起来学习一下Manacher算法。当你掌握了Manacher之后,你会发现,很多字符串问题都变成了板子,而你再也不用担心因为字符串抱
- 2024-08-08「模拟赛」暑期集训CSP提高模拟15(8.7)
赛时记录:开场看T1,一眼\(manacher\)求子串回文串,听课是听了,但是不会啊。跳了。看T2,发现结论题,推了会结论打上走了。打完T2想了会T3、T4,无思路,回来打了T1暴力和特殊性质,\(30pts\),又去想T3,还是不会,这时还剩一个小时。不行,现在才\(130pts\),包打祭的啊,能不能翻盘看我T1
- 2024-08-05算法·理论:Manacher 笔记
\(\text{Manacher}\)来啦!\(\text{Manacher}\)并没有什么前置知识,比\(\text{KMP}\)简单多了。前置处理\(\text{Manacher}\)算法用于解决回文串相关问题,先看几个基本概念:回文中心、回文半径,这些看字面意思就能猜到。还有一个重要问题:对于回文串,有长度为奇数或长度为偶数之
- 2024-07-30manacher
manacher用途:找字符串中的最长的回文子串。考虑该问题【模板】manacher求最长回文串长度。该如何做?暴力\(O(n^2)\)就是枚举回文中心,向外拓展。代码太简单了,就不挂了。其实是懒得打二分+hash\(O(n\logn)\)将字符串正向hash,反向hash,枚举回文中心,二分答案即可
- 2024-07-28to do list
数学图论数据结构李超线段树dp动态dp字符串manacher语法科技(永远不嫌多)应该没人看吧,那我挂张奇怪的图
- 2024-07-23回文结构 manacher & PAM 马拉车 & 回文树
manacher马拉车通过在每个字符间插入一个特殊字符,使得字符串长度为奇数,从而保证每个字符都有中心。在每个中心记录回文串的长度。马拉车的扩展方式和\(Z\)函数类似。都是通过映射之前已经算过的位置,然后尽可能的向右扩展。复杂度\(O(n)\)通常马拉车的题目统计回文串需要与其他
- 2024-07-20P3805 【模板】manacher
原题链接题解细节所有字符的回文半径初始化为1rmax=1ans=1code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;voidsolve(){strings;cin>>s;strings1;for(inti=0;s[i];i++){s1+='#';s1+=
- 2024-07-10「字符串」Manacher算法(马拉车)/ LeetCode 05(C++)
给你一个字符串 s,找到 s 中最长的回文子串。示例1:输入:s="babad"输出:"bab"解释:"aba"同样是符合题意的答案。示例2:输入:s="cbbd"输出:"bb"思路我们回想中心扩散法:某字符处的中心扩散完毕后,其实已经将它身前身后的字符段落都搜索过了,那么如果我们搜索其后的字
- 2024-06-22Manacher学习笔记
1.用途给定一个串,求该串中最长回文子串的长度2.算法过程2.1.预处理回文串分为两类,奇回文和偶回文,所以对称中点是不确定的,可能是字符也可能是两个字符之间的空隙所以可以在任意两个字符和开头结尾加上同一个奇怪的字符,此时的回文中心就一定是一个字符2.2.算法主体定义数