正题

luogu 4555


题目大意

给出一个字符串,让你求两个相邻的回文串的最大长度和


解题思路

先用Manacher求出最长回文串

然后暴力配对即可


代码

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 200021
using namespace std;
int n, ans, l[N], r[N], v[N], s[N];
string str;
void Manacher()
{int mid = 0, mx = 0;for (int i = 1; i <= n; ++i){if (i < mx) v[i] = min(v[mid * 2 - i], mx - i);else v[i] = 1;while(s[i + v[i]] == s[i - v[i]]) v[i]++;if (i + v[i] > mx){mx = i + v[i];mid = i;}r[i - v[i] + 1] = max(r[i - v[i] + 1], v[i] - 1);//存下以某个点为左端的最大回文串l[i + v[i] - 1] = max(l[i + v[i] - 1], v[i] - 1);}return;
}
int main()
{cin>>str;n = str.size();s[0] = s[1] = '#';for (int i = 1; i <= n; ++i){s[i * 2] = str[i - 1];s[i * 2 + 1] = '#';}n = n * 2 + 2;s[n] = 0;Manacher();for (int i = 2; i <= n; ++i){r[i] = max(r[i], r[i - 2] - 2);//减少一个长度if (l[i] && r[i]) ans = max(ans, l[i] + r[i]);}printf("%d", ans);return 0;
}

【Manacher】最长双回文串(luogu 4555)相关推荐

  1. bzoj 2565: 最长双回文串 manacher算法

    2565: 最长双回文串 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem. ...

  2. [国家集训队]最长双回文串 manacher

    ---题面--- 题解: 首先有一个直观的想法,如果我们可以求出对于位置i的最长后缀回文串和最长前缀回文串,那么我们枚举分界点然后合并前缀和后缀不就可以得到答案了么? 所以我们的目标就是求出这两个数列 ...

  3. BZOJ 2565: 最长双回文串

    2565: 最长双回文串 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1769  Solved: 895 [Submit][Status][Dis ...

  4. 青橙 A1280. 最长双回文串

    A1280. 最长双回文串 时间限制:2.0s   内存限制:512.0MB   总提交次数:   AC次数:   平均分: 将本题分享到: 查看未格式化的试题   提交   试题讨论 试题来源 中国 ...

  5. 【BZOJ2565】最长双回文串(回文树)

    [BZOJ2565]最长双回文串(回文树) 题面 BZOJ 题解 枚举断点\(i\) 显然的,我们要求的就是以\(i\)结尾的最长回文后缀的长度 再加上以\(i+1\)开头的最长回文前缀的长度 至于最 ...

  6. HYSBZ 2565 最长双回文串 (回文树)

    2565: 最长双回文串 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1377  Solved: 714 [Submit][Status][Dis ...

  7. P4555-[国家集训队]最长双回文串【Manacher】

    正题 题目链接:https://www.luogu.com.cn/problem/P4555 题目大意 长度为nnn的串,双回文串的定义是两个连续的回文串,求最长的双回文串. 解题思路 我们用马拉车维 ...

  8. BZOJ 2565 最长双回文串 Manacher

    题目大意: 定义双回文串G是指一个可以被拆分成两个部分(S和T)的字符串G = S + T, 且S和T都是回文串的串, G自己本身可以不是回文串 给出一个长度为n ( 2 <= n <= ...

  9. 2682. 【WC2012选拔12.17】最长双回文串

    Description 顺序和逆序读起来完全一样的串叫做回文串.比如acbca是回文串,而abc不是(abc的顺序为"abc",逆序为"cba",不相同). 输 ...

  10. P4555 最长双回文串

    题目描述 顺序和逆序读起来完全一样的串叫做回文串.比如acbca是回文串,而abc不是(abc的顺序为abc,逆序为cba,不相同). 输入长度为 n的串 S ,求 S的最长双回文子串 T ,即可将 ...

最新文章

  1. 2435: [Noi2011]道路修建
  2. P2831 愤怒的小鸟
  3. 【分享】怎样学习一门新技术?
  4. C#中lock死锁实例教程
  5. java-HashSet源码学习
  6. 使用Sidecar支持异构平台的微服务
  7. php event loop,理解javascript中的事件循环(Event Loop)
  8. iphone8plus屏幕尺寸_百思买在苹果发布会前列出了一款“iPhone SE Plus”屏幕保护保护膜...
  9. yaml 数组_使用 YAML 保存游戏数据 !
  10. [War3]Fdf文件详解,简单的UI教程演示 - 魔兽争霸3
  11. 逆向学习之Hook技术
  12. Cython 的简要入门、编译及使用
  13. 为什么现在的智能手机,都被设计成不可更换电池?
  14. 公共数据库介绍~OECD经合组织数据库
  15. like功能以及check功能
  16. 使用Zerotier实现免费内网穿透
  17. 方舟生存服务器没有响应怎么办,方舟生存进化搜服务器闪退怎么办? Fata error临时解决办法一览...
  18. Python curses使用
  19. 生产物流系统建模与仿真-基于WITNESS建模视频教程
  20. 看EyeEm如何在产品开发中整合、运用深度学习模型

热门文章

  1. 参加计算机竞赛需要学什么知识,数学和计算机专业,我应该参加那些比赛?
  2. linux基础 linhaifeng,Linux基础之命令练习Day2(示例代码)
  3. xencenter vgpu 看不见_有一种设计是“看不见,但感受得到”
  4. infor wms 项目启动_广汽本田增城工厂No.2L WMS项目正式启动
  5. cas 4.2.7 官方手册_海城市地区,保险手册核验的简单流程
  6. Leetcode周赛复盘——第 278 场力扣周赛
  7. 高等数学下-赵立军-北京大学出版社-题解-练习12.4
  8. 《C++ Primer》2.6.1节练习
  9. number two
  10. 文件夹复制 覆盖_软网应用:U盘即插即复制