题目链接:传送门 题目大意:略 题目思路:DP 先预处理,分别以每个字母为中心处理能形成的回文串,再以两个字母为中心处理能形成的回文串. 然后 dp[i] 表示1~i 能形成的数目最少的回文串. 转移方程:if(vis[j][i]==1&&dp[i]>dp[j]+1)dp[i]=dp[j]+1; #include <iostream> #include <cstdio> #include <cstdlib> #include <cmath&g…
P2890 [USACO07OPEN]便宜的回文Cheapest Palindrome 时空限制 1000ms / 128MB 题目描述 Keeping track of all the cows can be a tricky task so Farmer John has installed a system to automate it. He has installed on each cow an electronic ID tag that the system will read…
点此看题面 大致题意: 求一个字符串中有多少个长度为偶数的回文串,它的一半也是回文串. \(Manacher\)算法 这应该是\(Manacher\)算法一道比较好的入门题,强烈建议在做这题之前先去学一学\(Manacher\)算法. 大致思路 如果你会\(Manacher\)算法,其实这题的思路应该还是比较清晰的. 只要在更新最大右边界的同时,判断每一个新出现的回文串是否为双倍回文串,并更新\(ans\)即可. 代码 #include<bits/stdc++.h> #define max(x…
题目链接: 点我 题目分析: 玄学\(dp\) 设\(val[s[i] - 'a' + 1]\)表示字母\(s[i]\)的花费 首先发现对于一个已经回文了的串\(s[i, j]\),在\(s[i - 1]\)的位置上删去和在\(s[j + 1]\)的位置上加上本质上是一样的,所以\(val[s[i] - 'a' + 1]\)直接取增删的最小即可 设\(dp[i][j]\)表示把\(s[i, j]\)变成回文串的最小代价,初始化所有花费为\(INF\),\(dp[i][i] =0\),如果有\(s…
BZOJ 洛谷 很久之前写(抄)过一个Hash+Manacher的做法,当时十分懵逼=-= 然而是道回文树模板题. 回文树教程可以看这里(真的挺妙的). 顺便再放上MilkyWay的笔记~ //35100kb 708ms #include <cstdio> #include <cstring> #include <algorithm> #define gc() getchar() typedef long long LL; const int N=3e5+5; stru…
3676: [Apio2014]回文串 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 844  Solved: 331[Submit][Status][Discuss] Description 考虑一个只包含小写拉丁字母的字符串s.我们定义s的一个子串t的“出 现值”为t在s中的出现次数乘以t的长度.请你求出s的所有回文子串中的最 大出现值. Input 输入只有一行,为一个只包含小写字母(a -z)的非空字符串s. Output 输出一个整数,…
题目描述 考虑一个只包含小写拉丁字母的字符串s.我们定义s的一个子串t的“出 现值”为t在s中的出现次数乘以t的长度.请你求出s的所有回文子串中的最 大出现值. 输入 输入只有一行,为一个只包含小写字母(a -z)的非空字符串s. 输出 输出一个整数,为逝查回文子串的最大出现值. 样例输入 [样例输入l] abacaba [样例输入2] www 样例输出 [样例输出l] 7 [样例输出2] 4 提示 一个串是回文的,当且仅当它从左到右读和从右到左读完全一样. 在第一个样例中,回文子串有7个:a,…
传送门 对原串建立一个后缀自动机,然后用反串在上面匹配. 如果当前匹配的区间[l,r][l,r][l,r]包裹了当前状态的endposendposendpos中的最大值,那么[l,maxpos][l,maxpos][l,maxpos]就是一个回文串. 于是赶快码一波统计答案(很遗憾会wa) 因为有可能原串在答案中. 于是我们可以遍历其linklinklink链一直跳来更新答案. 代码: #include<bits/stdc++.h> #define ri register int using…
2565: 最长双回文串 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1377  Solved: 714 [Submit][Status][Discuss] Description 顺序和逆序读起来完全一样的串叫做回文串.比如acbca是回文串,而abc不是(abc的顺序为"abc",逆序为"cba",不相同). 输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y…
3676: [Apio2014]回文串 Time Limit: 20 Sec  Memory Limit: 128 MB Submit: 1680  Solved: 707 [Submit][Status][Discuss] Description 考虑一个只包含小写拉丁字母的字符串s.我们定义s的一个子串t的"出  现值"为t在s中的出现次数乘以t的长度.请你求出s的所有回文子串中的最  大出现值. Input 输入只有一行,为一个只包含小写字母(a -z)的非空字符串s. Outp…