算法笔记——马拉核弹(Mana Nuclear)
0x00 摘要
“马拉核弹”算法由 SXHT 同学(2009~今)发明,并在 2024 年 11 月于某不知名学校机房内正式公布。该算法基于 1975 年发明的 Manacher 算法,并将其推广至对称正方形问题。
原文链接与密码:sunxuhetai2009。
关键词:Manacher 算法 信息学 对称正方形
0x01 缘由
先来看这道题目:
给定一个
行 列的矩阵,求矩阵中上下对称且左右对称的正方形子矩阵的个数。
这道题可以应用二维哈希实现,时间复杂度
0x02 解释
嗯哼!单调性——显然有若大正方形对称,则被大正方形包含的小正方形对称
二分是非常不错的选择呢!进一步,二分正方形边长
然后就是快乐的枚举中心点环节
剩余的操作类似于……,只不过换成了二维矩阵
同样需要注意如下情况……
- 对于奇数阶和偶数阶的两种情况,要分开处理哦!
- 上下翻转和左右翻转后的结果都需要比对成功才算回文矩阵
本文来自博客园,作者:cwkapn,转载请注明原文链接:https://www.cnblogs.com/chenaknoip/p/18530993
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)