1689D Lena and Matrix (曼哈顿距离转切比雪夫距离/随机化/线段树)
记一道有趣的题:P
题意
这道题很有意思。
给定地图上若干个黑色的点,求这样一个点的坐标,满足其到图中任何一个黑色点的最大曼哈顿距离最小。
方法一
曼哈顿距离和且比雪夫距离可以互相转化,曼哈顿转切比雪夫如下:
转化后原坐标的曼哈顿距离等价为转化后的切比雪夫距离。也就是:
证明详见:https://oi-wiki.org/geometry/distance/
这样就把两个维度拆开了,只要对于分别求最大/最小值,再枚举矩阵上的点打擂台即可。
方法二
随机化的做法是随机500个格子,找出距离它们最远的黑色格子,把这些黑色格子作为“最远点”。再枚举矩阵上所有点求答案。
原理是500个格子找出的黑色格子,极大概率包含方法一中的最大/最小值。
方法三
考虑列数固定的时候,有用的只有最上面的格子和最下面的格子,格子的数量级压缩到了。
按行枚举矩阵上每一个格子,从时,列的格子贡献,列的格子贡献-1,线段树区间操作即可。这部分的复杂度是
当一行枚举完,挪到下一行开始枚举时,初始化的复杂度是的,这部分总的复杂度是,可以接受
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)