首页 > 编程语言 >算法笔记——马拉核弹(Mana Nuclear)

算法笔记——马拉核弹(Mana Nuclear)

时间:2024-11-06 20:46:58浏览次数:3  
标签:Mana Nuclear 矩阵 马拉 正方形 算法 核弹 对称

0x00 摘要

“马拉核弹”算法由 SXHT 同学(2009~今)发明,并在 2024 年 11 月于某不知名学校机房内正式公布。该算法基于 1975 年发明的 Manacher 算法,并将其推广至对称正方形问题。
原文链接与密码:sunxuhetai2009
关键词:Manacher 算法 信息学 对称正方形

0x01 缘由

先来看这道题目:

给定一个 \(n\) 行 \(m\) 列的矩阵,求矩阵中上下对称且左右对称的正方形子矩阵的个数。

这道题可以应用二维哈希实现,时间复杂度 \(O(n^2 \text{log} n)\);但马拉核弹算法提供了另一种可能性。

0x02 解释

嗯哼!单调性——显然有若大正方形对称,则被大正方形包含的小正方形对称
二分是非常不错的选择呢!进一步,二分正方形边长
然后就是快乐的枚举中心点环节
剩余的操作类似于……,只不过换成了二维矩阵
同样需要注意如下情况……

  • 对于奇数阶和偶数阶的两种情况,要分开处理哦!
  • 上下翻转和左右翻转后的结果都需要比对成功才算回文矩阵

标签:Mana,Nuclear,矩阵,马拉,正方形,算法,核弹,对称
From: https://www.cnblogs.com/chenaknoip/p/18530993

相关文章

  • python webdriver-manager 实现selenium 免下载安装webdriver
    selenium在自动化测试中,通常需要使用浏览器驱动来与浏览器进行交互。然而,手动下载、安装、以及管理这些驱动非常麻烦,尤其是当驱动版本频繁更新时。为此,webdriver-manager库提供了一个极简的方案,自动帮我们下载、更新和管理驱动,使Selenium代码更简洁优雅。webdriver-managergit......
  • 2024年教育、管理与艺术文化国际学术会议 (EMAC 2024) 2024 International Conference
    @目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz提交检索:EICompendex、IEEEXplore、Scopus三、大会介绍2024年教育、管理与艺术文化国际学术会议(EMAC2024)将于2024年12月20-22日在中国-......
  • start-all.sh脚本启动Hadoop的NameNode、DataNode、ResourceManager和NodeManager失败
    今天在做大数据实验时,在终端,start-all.sh脚本启动Hadoop的NameNode、DataNode、ResourceManager和NodeManager失败,出现下面的错误信息:[root@node1hadoop]#./sbin/start-all.shStartingnamenodeson[node1]ERROR:AttemptingtooperateonhdfsnamenodeasrootERROR:butt......
  • SATA系列专题之五:Link Power Management解析
     一、故事前传在之前的文章中,我们已经针对SATA的主要结构进行了较为详细的解析,详见前期文章:1,浅析SATAPhysicalLayer物理层OOB信号;2,SATALinkLayer链路层解析2.0-2.3;3,SATATransportLayer传输层解析3.0-3.4;4,SATACommandLayer命令层解析4.0-4.1;我们这里主要解......
  • ElasticSearch备考 -- Manage the index lifecycle (ILM)
    一、题目在集群中,数据首先分布在data_hot节点,rollover设置max_age:3d,max_docs:5,max_size:50gb,优先级为100。max_age:15s,forcemarge段合并,数据迁移到data_warm节点,副本数为0,优先级为50max_age:30s,数据从data_warm迁移到data_cold节点max_age:60s,数据删除运......
  • alertmanager: 查看日志
    一,在service文件中,指定日志的level编辑service文件[Unit]Description=AlertManagerwants=network-online.targetAfter=network-online.target[Service]Type=simpleUser=prometheusGroup=prometheusRestart=alwaysExecStart=/opt/alertmanager-0.27.0.linux-amd64/ale......
  • alertmanager源码:整体架构和流程分析
    alertmanager整体的架构,官方的这张图说的很清楚,本文从源码的角度,分析其各个模块,以及模块间的交互流程。alertmanager的代码使用v0.24.0版本。一.API接收alerts接口alerts的API为:POST/api/v2/alerts该API的handler如下:该handler先进行数据转换后,再进行数据校验,最后放入a......
  • systemctl restart NetworkManager 重启后,文件/etc/resolv.conf修改失败
    如果你在重启NetworkManager之后发现无法修改/etc/resolv.conf文件,这是因为NetworkManager会自动管理这个文件为了解决这个问题,你可以采取以下两种方法之一:方法一:禁用NetworkManager服务使用以下命令停止NetworkManager服务:sudosystemctlstopNetworkMana......
  • Cloudera Manager 前后端分离部署方法
    现状如果大数据团队使用ClouderaManager产品,那极有可能会遇到以下场景:有多套环境,需要维护各个环境的scmserver地址(http://10.x.x.x:7180)给每个scmserver申请域名,但域名的变更需要走流程方案采取前后端分离部署方案(niginx+域名),将cloudera-scm-server的前端静态文......
  • RMAN之环境配置(二)---Backups to a Media Manager备份到介质管理器
    在生产库中,一般都选用第三方的磁带管理软件,但是基本对于oracle的备份和恢复都是通过调用RMAN来实现的。确定mediamanagerLibrary(媒体管理库)的位置在尝试将RMAN与媒体管理器一起使用之前,请确定媒体管理库的位置。分配或配置RMAN与媒体管理器通信的通道时,在命令行ALL......