UOJ794. 【UR #24】比特之地

news/2024/9/21 12:17:35/文章来源:https://www.cnblogs.com/zzzYheng/p/18423835

题意:

https://uoj.ac/problem/794

思路:

可以发现这是一个类网格图最短路的问题,因此可以考虑 旅行者 中的技巧:每次找到一个点集 \(s\),计算过点集 \(s\) 的所有路径贡献,然后删除点集 \(s\),对剩余的每个连通块递归执行这个过程。

显然比较好的点集 \(s\) 需要满足以下性质:

  • 点集 \(s\) 要比较小,这是为了保证计算过 \(s\) 路径的贡献的复杂度。
  • 删去点集 \(s\) 后图要裂成至少两个连通块,且每个连通块的大小较为均匀。

那么现在的目标就是每次在图中寻找一个比较优的 \(s\)

首先这个图是不可能比网格图更优的,所以我们考虑寻找 \(\Theta(\sqrt{n})\) 大小的 \(s\)

还是考虑类似的根号分治,我们先考虑树高不超过 \(\sqrt{n}\) 的情况,此时可以考虑竖向划分。

此时我们可以直接找到 \(dfn\) 序最中间的点 \(p\),选择其到跟链,这样划分非常均匀,但是左右两个部分并没有完全断开,它们还可以从下方绕过去。

因此如果 \(p\) 不是叶子,我们可以将其 \(dfn\) 序最小的儿子加入;如果 \(p\) 是叶子,注意此时如果 \(p\) 不在最后一层,那么左右两边还是可以通过下面的点连通,不过我们选择 \(s\) 并没有一定要选链的要求,所以可以选择下一层中 \(dfn\)\(p\) 大的第一个点加入 \(s\),重复这个过程。

可以发现这样就得到了一个符合要求的 \(s\) 了,可以发现左右两边是不可能绕过 \(s\) 连通的。

对于树高超过 \(\sqrt{n}\) 的情况可以考虑横向划分,因为一定存在一行大小不超过 \(\sqrt{n}\)

可以找到最中间的一行 \(l_1\),满足上面和下面的大小都不超过 \(\frac{n}{2}\)

但是这一行的大小可能超过 \(\sqrt{n}\),不能直接划开这一行。

但是在 \(l_1\)\(\sqrt{n}\) 行内一定会存在一行 \(l_0\) 大小不超过 \(\sqrt{n}\)(可能为 \(0\),即连通块在这里结束了),同理 \(l_1\) 下方 \(\sqrt{n}\) 行内一定会存在一行 \(l_2\) 大小不超过 \(\sqrt{n}\)

我们可以把 \(l_0\)\(l_2\) 割开,这样 \(l_0\) 上方和 \(l_2\) 下方两个连通块大小就都不超过 \(\frac{n}{2}\),满足条件。不过 \(l_0\)\(l_2\) 中间的部分仍可以很大,不过这个部分的树高一定不超过 \(\sqrt{n}\),我们再使用竖向划分的方法即可。

这样复杂度是 \(T(n)=2T(\frac{n}{2})+n^{1.5}=n^{1.5}\)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/800930.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

帝国cms备份的数据库文件夹

帝国CMS的数据库路径通常位于帝国CMS安装目录下的 data 目录中。以下是几种常见的查找方法: 查看 config.php 文件定位 config.php 文件:打开帝国CMS安装目录下的 e/config/config.php 文件(对于帝国CMS 7.0及以后的版本)。 对于帝国CMS 7.0之前的版本,打开 e/class/confi…

帝国cms所有数据库字段说明

帝国CMS(Empire CMS)是一款基于PHP和MySQL的开源内容管理系统,它提供了丰富的功能和灵活的扩展性,适用于构建多种类型的网站。下面是关于帝国CMS数据库字段的一些说明,这些信息主要集中在购物车数量限制、提交订单权限以及同一IP注册间隔限制等方面。购物车数量限制字段名…

帝国cms数据库在哪

帝国CMS(EmpireCMS,简称ECMS)的数据库文件和配置通常位于以下几个位置:数据库文件位置:帝国CMS的数据库通常是存放在MySQL数据库服务器中的,而不是以文件的形式存储在服务器上。不过,如果你指的是数据库备份文件,那么这些文件通常位于帝国CMS安装目录下的data目录中。例…

帝国cms更换域名后图片地址更换的方法

当帝国CMS更换域名后,图片地址也需要相应的更新,以确保图片能够正常显示。以下是更换域名后更新图片地址的一些方法: 1. 替换数据库中的图片路径 对于帝国CMS来说,图片路径通常存储在数据库中。因此,更换域名后,需要更新数据库中存储的图片路径。 方法:导出数据库:先备…

帝国cms模板怎么制作

制作帝国CMS的模板涉及到了解HTML、CSS、JavaScript以及帝国CMS自身的模板标签和语法。下面是一个简单的指南,帮助你开始制作帝国CMS的模板。 1. 准备工作了解基础:熟悉HTML、CSS和JavaScript的基础知识。 学习帝国CMS模板语法:掌握帝国CMS的模板标签和语法。2. 设计模板布局…

给 DSL 开个脑洞:无状态的状态机

阿里妹导读:什么是 DSL ?DSL 是一种工具,其核心价值在于提供了一种手段,可以更加清晰地就系统某部分的意图进行沟通。本文将通过实现一个状态机引擎来看清 DSL 的本质,介绍状态机的核心模型和 Fluent 接口,并解决状态机的性能问题。最近在一个项目中,因为涉及很多状态的…

帝国cms编辑 帝国cms编辑器不能粘贴复制文字

当帝国CMS的编辑器不能粘贴复制文字时,可能是因为编辑器的某些设置或浏览器的限制导致的。以下是一些可能的解决方案: 1. 检查编辑器设置 确保编辑器的设置允许粘贴和复制。 解决方法:查看编辑器选项:在帝国CMS的后台,检查编辑器的设置,确保允许粘贴和复制操作。 使用粘贴…

FFmpeg开发笔记(五十三)移动端的国产直播录制工具EasyPusher

​EasyPusher是一款国产的RTSP直播录制推流客户端工具,它支持Windows、Linux、Android、iOS等操作系统。EasyPusher采用RTSP推流协议,其中安卓版EasyPusher的Github托管地址为https://github.com/EasyDarwin/EasyPusher-Android。不过EasyPusher有好几年没更新了,尤其安卓版…

帝国cms 您的用户名、密码或安全答案有误,也可能您的帐号已被禁用,请重输

当你忘记了帝国CMS 的后台密码时,可以通过直接修改数据库中的用户信息来重置密码。以下是重置密码的步骤: 步骤1:进入phpMyAdmin 首先,你需要登录到你的服务器,并通过phpMyAdmin或者其他的数据库管理工具访问你的数据库。 步骤2:找到phome_enewsuser数据表 在数据库管理工…

安装帝国cms时输入安装地址,出现404错误

当你在安装帝国CMS时输入安装地址却遇到404错误,这意味着服务器无法找到你所请求的安装脚本页面。这个问题可能是由多种因素引起的,以下是一些常见的解决方法: 1. 检查安装包是否完整 确保你下载的帝国CMS安装包是完整的,并且所有文件都已正确上传到服务器。 解决方法:重新…

帝国cms刷新首页空白怎么办

当帝国CMS刷新首页后出现空白的情况时,这可能是由多种原因造成的。以下是一些常见的解决方法: 1. 检查数据库连接 确保数据库连接正常。 解决方法:检查数据库配置:打开e/config/config.php文件,确认数据库连接信息(如主机名、用户名、密码、数据库名)正确。 测试数据库连…

manim边学边做--空心多边形

空心的多边形Cutout是一种比较特殊的多边形,主要用于解决与形状、大小、位置等相关的数学问题。 Cutout多边形可以定义物体表面的空洞或凹陷部分,从而更准确地模拟现实世界中的复杂形状。 比如,在PCB(印制电路板)设计中,通过放置Cutout空心的多边形,设计师可以精确地控制…