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

CCPC哈尔滨站-J. 幻想乡的裁判长

statement

给一个长为 \(n\) 的字符串 \(s\),字符集为 \(\{\text{o, v, w}\}\),请输出最长的回文子串,这个子串中一个 \(\text{w}\) 可以看成两个 \(\text{v}\)

给个例子:\(\text{wwovvvv}\) 是合法的。

数据范围:多测,\(\sum n\le 10 ^ 7\)

solution

把字符串看成很多段,连续的 \(o\) 看成一段,连续的 \(v\)\(w\) 也可以看成一段。

这个时候,计算每一段的长度,计算时把 \(w\) 的长度看作 \(2\),其他字符的长度看为 \(1\),按照从左往右的顺序将长度存在一个数组 \(a\) 中。

然后对 \(a\) 进行一个 Manacher,得到数组 \(P\)

这样通过 \(P\) 就可以得到所有形如:

\[o\cdots o|w\cdots v|o\cdots o \\ w\cdots v|o\cdots o|w\cdots v \]

的回文串。

这个时候,对于每一个这样的回文串,再暴力往两边扩展即可。

时间复杂度 \(\mathcal O(\sum n)\).

http://www.rkmt.cn/news/44690.html

相关文章:

  • 牛客网测试题
  • OZI-Project代码注入漏洞分析与修复方案
  • 创建第一个pygame游戏窗口
  • P10194 [USACO24FEB] Milk Exchange G 做题记录
  • 点云配准基础知识
  • 完整教程:Android监听第三方播放获取音乐信息及包名
  • 【JEECG 组件扩展】JSwitch开关组件扩展单个多选框样式 - 详解
  • 阿道夫
  • 使用jmeter做压力测试 - 实践
  • CSP2025游记总结
  • 连续出现的字符
  • 11.8 NOIP模拟4 改题记录
  • TCP和
  • 翻译[9]-让sshfs再次伟大于浏览器中
  • python 多个excel合并
  • U629961 焦头烂额的日奈委员长 の markdown
  • 使用Milvus和DeepSeek构建RAG demo - 实践
  • 如何写毕业论文?10个高效写作技巧+AI论文工具推荐(2025最新)
  • 二 C#工程化部署Yolo - 详解
  • MATLAB 实现 SRCNN 图像超分辨率重建
  • Java-148 深入浅出 MongoDB 聚合操控:$match、$group、$project、$sort 全面解析 Pipeline 实例详解与性能优化
  • 深入解析:vscode-cpptools调试器扩展:监视表达式高级功能
  • 人工势场法(APF)路径规划 MATLAB
  • MySQL--多表查询
  • 哈佛放屁都是香的?
  • 深入解析:李宏毅2025春季机器学习作业ML2025_Spring_HW4在kaggle上的实操笔记
  • 完整教程:PostgreSQL + Redis + Elasticsearch 实时同步方案实践:从触发器到高性能搜索
  • 基于最小二乘法的五颗可见卫星伪距定位
  • new day
  • 2025 年 11 月冰水机厂家推荐排行榜,工业冰水机,冷却冰水机,制冷冰水机,低温冰水机公司精选