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

字符串专题 #1

字符串专题 #1

Problem A. P6640 [BJOI2020] 封印

答案即为 \(\max_{i\in[L,R],j\in[1,m]}\{\min({\rm LCP}(s[i:n],t[j:m]),R-i+1)\}\)

先对于每个 \(i\) 求出 \(\max({\rm LCP}(s[i:n],t[j:m]))\)。我们可以先把 \(s,t\) 接在一起,用分隔符隔开,然后用 SA 求解。

\(R-i+1\)\(\min\),这部分用扫描线+线段树维护。

Problem B. P1117 [NOI2016] 优秀的拆分

\(f_i\)\(i\) 开头的 AA 串个数,\(g_i\)\(i\) 结尾的 AA 串个数,答案即为 \(\sum g_if_{i+1}\)

\(f_i\) 写出来,\(f_i=\sum_k [{\rm LCP}(s[i:n],s[i+k]:n)\ge k]\)

枚举 \(i\) 不好做,所以我们枚举 \(k\)

厉害的来了,\(k\) 的倍数的位置设为关键点,一个 AA 串经过且仅经过两个关键点。枚举相邻两个关键点 \(i,j\),计数穿过它们的 AA 串个数。

一个 AA 串若要穿过 \(i,j\),那么 \({\rm LCP}(s[i:n],s[j:n])\)\({\rm LCS(s[1:i],t[1:j])}\) 都要不短于某个值。

所以我们求出 \(p={\rm LCP}(s[i:n],s[j:n]),q={\rm LCS(s[1:i],t[1:j])}\)。如果 \(p+q<k-1\),那么一定没有合法 AA 串;否则起点在 \([i-q+1,i+p-k]\) 中(也就是终点在 \([j-q+k,j+p-1]\) 中)的长度为 \(2k\) 的串都是 AA 串。差分维护。

总复杂度 \(O(n\ln n)\)

http://www.jsqmd.com/news/316809/

相关文章:

  • 分析上海口碑好的代理记账企业,看看都有谁
  • 零基础PHP从零到一实现上一页和下一页的庖丁解牛
  • 2026景区游乐设备厂家选型参考:安全合规与场景融合的理性指南
  • 跳跃游戏 II | 贪心算法最优解(最少跳跃次数)
  • 深入剖析CVE-2025-20354:思科CCX系统高危RCE漏洞详解
  • AI生成测试用例的全面性优势:技术机理与实践验证
  • 我让AI读了1000个测试用例,总结出“好用例”的5个特征
  • 写论文软件哪个好?实测 10 款工具后,虎贲等考 AI 凭 “全流程闭环” 稳赢
  • 10个技巧:用AI自动生成测试报告
  • 【收藏必学】大模型技术全解析:从入门到实践的人工智能核心指南
  • 2026可靠伦茨减速机优质厂家推荐榜:伦茨制动器、伦茨变频器、伦茨控制器、伦茨直流调速器、伦茨维修、伦茨驱动器选择指南
  • 常州市英语雅思培训机构推荐,2026权威测评出国雅思辅导机构口碑榜单.
  • 终极预测:2030年,AI将自动编写测试用例?
  • 实时AI监控测试实战:从理论到落地的全面指南
  • AI创作避坑 学术党实测有效,免费搞定查重+绘图+改稿
  • 震惊!这3个VS Code插件让调试快如闪电:软件测试从业者的效率革命
  • 2026年趋势:开发者必学的联邦学习测试
  • 硬盘数据损坏分析
  • 9999999
  • 打造半导体行业培训新视野:3D动画助力固晶机应用解析
  • 【图像加密】基于 DCT 变换的图像加密与解密附matlab代码
  • 收藏必看!告别RAG碎片化:一文讲透Forms-Dynamics框架下的Agent记忆系统
  • 收藏!2026年AI行业最大机会,锁定应用层赛道
  • 收藏!Java程序员转行大模型开发:从入门到落地的完整指南
  • 何洁月 C++教程 初学者编程入门视频讲解
  • 管理信息系统第一次作业指南与在线完成技巧
  • 华师在线作业系统2026使用指南:功能详解与高效提交技巧
  • 零基础C语言教程视频推荐,哪个好?
  • 2026Deepseek 知识库部署服务实力榜单:经验丰富的专业实施服务商推荐
  • 2026年全国设备搬运公司哪家强?多家厂家优势对比 特色服务拆解