当前位置: 首页 > news >正文

最长回文子串

方法一:二分 Hash,时间复杂度 \(\mathcal{O}(n \log n)\)
方法二:记 \(R_i\) 为以 \(i\) 结尾的最长回文子串的长度,则 \(R_i \le R_{i - 1} + 2\),每次从 \(R_{i - 1} + 2\) 开始枚举即可。时间复杂度 \(\mathcal{O}(n)\)
方法三:SA + \(\mathcal{O}(n) \sim \mathcal{O}(1)\) LCA 做到 \(\mathcal{O}(n)\)
方法四:Manacher
考虑长度为奇数:
考虑当前最右侧的回文串 \(s_{[l, r]}\),即 \(r\) 最大的串,那么根据对称性,\(d_1[i] = d_1[l + r - i]\),但是有可能出去,所以要和 \(r - i\)\(\min\)。然后直接暴力 check,时间复杂度 \(\mathcal{O}(n)\),我不会证。
偶数懒得推了,把开头、结尾、字符间间隔加上特殊字符 #,最后的答案就是 \(\max d_i - 1\)

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
// typedef __int128 i128;
typedef pair<int, int> pii;
const int N = 2.2e7 + 10, mod = 998244353;
template<typename T>
void dbg(const T &t) { cout << t << endl; }
template<typename Type, typename... Types>
void dbg(const Type& arg, const Types&... args) {cout << arg << ' ';dbg(args...);
}
namespace Loop1st {
int n, ans, d[N];
char ch;
string s;
void main() {s = "#";while (cin >> ch) s += ch, s += '#';n = s.size();for (int i = 0, l = 0, r = -1; i < n; i++) {int k = (i > r) ? 1 : min(d[l + r - i], r - i + 1); while (0 <= i - k && i - k < n && s[i - k] == s[i + k]) k++;d[i] = k--;if (i + k > r) l = i - k, r = i + k;ans = max(ans, d[i] - 1);}cout << ans << '\n';
}}
int main() {// freopen("data.in", "r", stdin);// freopen("data.out", "w", stdout);ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);int T = 1;// cin >> T;while (T--) Loop1st::main();return 0;
}
http://www.jsqmd.com/news/193049/

相关文章:

  • 2026年市场分析:粘度计应用方案找哪家?东南科仪可以提供粘度计应用方案 - 品牌推荐大师
  • 【高性能PHP文件传输指南】:断点续传+秒传+分片上传一体化解决方案
  • 百度百家号内容创作者的AI视频助手HeyGem
  • 设备状态丢失怎么办?PHP物联网系统中5个关键容错机制必须掌握
  • 仅限内部分享:PHP开发区块链交易记录系统的7个机密方法
  • 2026年无人机培训推荐:聚焦应急电力案例的5强口碑榜单深度解析。 - 品牌推荐
  • 内网 IP 怎么访问互联网?NAT 技术与“小区保安”的比喻
  • wangEditor复制word公式转MathType格式
  • 2026年无人机培训推荐:基于多品牌实力对比的5强榜单深度解析 - 品牌推荐
  • API接口开放吗?HeyGem未来计划中的远程调用支持
  • wangEditor粘贴微信公众号文章到html富文本
  • Python多源职位信息聚合爬虫实战:异步抓取与智能去重
  • Instagram Reels创意视频:HeyGem助力品牌传播
  • 基于AI与大数据的Python爬虫实战:深度解析招聘市场需求与技术趋势
  • 用户名密码认证如何加?增强HeyGem访问控制
  • 云服务器成本优化:从资源浪费到精细化管控的实践路径
  • 音频背景噪音大影响效果?HeyGem输入音频优化建议
  • 章源钨业资源储备:HeyGem生成稀有金属战略价值分析
  • java: 错误: 无效的源发行版:17,零基础入门到精通,收藏这篇就够了
  • PHP WebSocket连接不稳定?一文解决重连失败与消息丢失难题
  • WebSocket总是断连?PHP开发者必须掌握的7种重连优化技巧
  • 2026年 广东公司注册服务权威推荐榜:东莞深圳广州专业代办,高效合规助力企业快速启航 - 品牌企业推荐师(官方)
  • PHP Redis缓存过期实战优化(从入门到高并发场景全覆盖)
  • LUT调色包下载后如何应用于HeyGem输出视频后期?
  • 大文件上传中断?建议使用支持断点续传的客户端
  • 网盘直链下载助手提取HeyGem训练数据集实战
  • HeyGem生成政府宣传视频合规性注意事项
  • 基于最新技术栈的竞品网站SEO深度分析:Python异步爬虫实战与元数据提取
  • 简单理解:时钟使能→GPIO 复用→AFIO 配置→定时器核心配置 的流程配置
  • 揭秘PHP断点续传实现原理:5步轻松搞定TB级文件稳定上传