Manacher 模板 例题 最长双回文串 https://www.luogu.com.cn/problem/P4555 题意 在给定的字符串中找到两个相邻的回文串,长度最长 思路 将Manacher处理后的" "当作两个回文串的连接点 注意这个处理步骤: 还有这个步骤: 代码 : https:// ...
分类:
编程语言 时间:
2020-03-28 00:56:00
阅读次数:
75
D2. Prefix Suffix Palindrome (Hard version) "题目链接" manacher做法 ...
分类:
其他好文 时间:
2020-03-26 19:47:42
阅读次数:
88
题目: 给你一个字符串,让你找一个最大回文串,这个回文串由该字符串的前缀和后缀一起组成 思路: 先处理字符串的两端直到两端不匹配为止,然后对中间的字符串跑一遍Manacher算法,然后 找出起始点为1或终止点为s.size()的最大回文串输出(这样才能保证满足前缀或后缀的条件),再分别输出即可 链接 ...
分类:
其他好文 时间:
2020-03-23 20:29:32
阅读次数:
73
"Link" 题意: $a$ 是 $s$ 的前缀,$b$ 是 $s$ 的后缀 使 $a+b$ 是可以找到的最大的回文串 $a$ 或 $b$ 可以是空串 思路: 找出最大长度 $k$ 使 $s[0,k 1]+s[len(s) k,len(s) 1]$ 是回文串 再用 Manacher 算法求出 $s[ ...
分类:
其他好文 时间:
2020-03-20 20:02:45
阅读次数:
88
#include <iostream> #include <algorithm> # define LL long long using namespace std; const int maxn=11000002; char data[maxn<<1]; int len[maxn<<1]; int ...
分类:
编程语言 时间:
2020-03-14 21:46:53
阅读次数:
67
题目链接:https://vjudge.net/problem/HDU-4513 题意:给定一个整型数组,求最大回文串,而且该回文串满足回文串中心的左边递增,右边递减。 思路: Manacher算法简单应用。 先用manacher算法求出p数组(p[i]表示以i为回文串中心的回文串最长是多少),然后 ...
分类:
其他好文 时间:
2020-03-04 21:01:05
阅读次数:
61
https://subetter.com/algorithm/manacher-algorithm.html #include<bits/stdc++.h> #define N 2050001 using namespace std; int len,p[N],Case,ans; char ch[N ...
分类:
编程语言 时间:
2020-02-26 23:20:52
阅读次数:
132
尽量找了个字符串里面最简单的部分来入门 发现并没想象中的简单... 模板: int n,p[N]; char s[N]; int manacher(int len) { int mx=0,id=0,res=0; for(int i=1;i<=len;i++) { p[i]=(mx>i?min(p[2 ...
分类:
其他好文 时间:
2020-02-26 01:25:39
阅读次数:
52
题目:输出最长回文子串,原串最长1000 坑:特判s=""; 复习一下马拉车算法,之前写的只求答案,没有要输出子串。 class Solution { public String longestPalindrome(String s) { //特判s="" if(s.length()==0) ret ...
分类:
编程语言 时间:
2020-02-19 15:12:44
阅读次数:
77
给出两个字符串,询问有多少种反转方法可以使字符串1变成字符串2。 如果两个串相同,就用马拉车算法找回文串的数量~ 如果两个串不同,从前往后找第一个不同的位置l,从后往前找第二个不同的位置r,反转l和r,判断是否成功~ 如果不成功,记为0 如果成功,以l和r为起点判断是否能反转,记录次数 #inclu ...
分类:
其他好文 时间:
2020-02-14 16:02:35
阅读次数:
79