CF2081D. MST in Modulo Graph

news/2025/3/17 12:02:00/文章来源:https://www.cnblogs.com/Steven1013/p/18776610

MST in Modulo Graph

思维怎么练?

题意

给定一个包含 \(n\) 个顶点的完全图, 其中第 \(i\) 个顶点的权重为 \(p_i\). 连接顶点 \(x\) 和顶点 \(y\) 的边的权重等于 \(\operatorname{max}(p_x, p_y) \bmod \operatorname{min}(p_x, p_y)\).

请找到一组 \(n - 1\) 条边, 使得这组边能够连接所有 \(n\) 个顶点, 并且这组边的总权重最小.

思路

由于边数是 \(\mathcal{O}(n^2)\) 级别的, 我们不能直接进行连边跑 Kruskal. 不难发现, 其实在图中很多边是不必要或者一定不优的, 我们考虑从减少连边的角度入手.

首先, 对于权值相同的节点, 我们可以将它们全部缩成一个点 \((\)因为两两连边代价是 0, 不会产生贡献\()\) 再来考虑. 假设当前枚举的点权值为 \(x\), 那么与它相连的边的权值一定在 \(0 \sim x - 1\) 的范围内, 我们考虑将其他点分成几个区间: \([x, 2x], [2x, 3x], \dots, [(k - 1)x, kx]\), 其中 \(\displaystyle k = \lfloor \frac{\max p_i}{x} \rfloor\). 对于每一个区间, 我们只向点权最小的那一个点连边. 证明一下, 如果存在 \(x < y < z < 2x\), 其中 \(y, z\) 均指点权, 那么 \(x \to y, y \to z\) 一定比 \(x \to y, x \to z\) 优, 至于 \(y \to z\) 的边, 我们会在枚举 \(y\) 时操作.

这样, 边的数量减少到的 \(\mathcal{O}(n \log n)\) 级别. 再跑一个 Kruskal, 总复杂度 \(\mathcal{O}(n \log^2 n)\).

void init() {e.clear();read(n);for (int i = 1; i <= n; ++i) {read(p[i]);}sort(p + 1, p + n + 1);n = unique(p + 1, p + n + 1) - p - 1;iota(fa, fa + n + 1, 0);
}void calculate() {for (int i = 1; i <= n; ++i) {for (int _ = 1, lim = p[n] / p[i]; _ <= lim; ++_) {int k = _ * p[i], pos = lower_bound(p + 1, p + n + 1, k) - p;if (pos == i) {pos = upper_bound(p + 1, p + n + 1, k) - p;}if (pos > n) {continue;}e.push_back({i, pos, p[pos] % p[i]});}}ranges::sort(e, [](Edge x, Edge y) {return x.w < y.w;});int cnt = 0;ll ans = 0;for (auto [u, v, w] : e) {if (cnt == n - 1) {break;}u = find(u), v = find(v);if (u ^ v) {++cnt;ans += w;fa[u] = v;}}printf("%lld\n", ans);
}

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

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

相关文章

linux中安装intel wifi ax101驱动

目录前奏安装在Ubuntu中FAQ 资料参考 获取帮助 前奏 rambo@ub24-1:~$ cat /etc/os-release PRETTY_NAME="Ubuntu 24.04.1 LTS" NAME="Ubuntu" VERSION_ID="24.04" VERSION="24.04.1 LTS (Noble Numbat)" ........rambo@ub24-1:~$ cat…

桌面级CPU、显卡天梯图

手动更新,收藏所有(来源:秋刀鱼半藏)《史上最全桌面级CPU天梯图》专用更新帖(公测版) 版本:V6.077,时间:2024.11 《史上最全桌面级显卡天梯图》专用更新帖(公测版) 更新时间:2025.03.06

Qwen2-VL华为卡300i duo环境搭建推理测试

引子 前面也写过华为300i duo DeepSeek的环境搭建&推理测试,感兴趣的同事请移步(https://blog.csdn.net/zzq1989_/article/details/146149684?spm=1001.2014.3001.5501)。多模态华为卡的适配倒是一直没有出过相关的博客。刚好遇到需要Qwen2-VL的配置,安装。OK, 那就让…

EWM528-2G4NW20SX系列LORA MESH无线组网模块深度测评

1.LORA MESH模块产品简介 EWM528-2G4NW20SX、EWM528-2G4NW27SX系列LORA MESH无线组网模块基于先进的无线通信技术打造。在输出功率方面,LORA MESH模块能提供稳定且适配多种场景的功率支持,保障信号的有效传输范围。空中速率表现出色,可满足大量数据快速传输的需求,提升工作…

SQLService 导入excel数据生成一个数据表

SQLService 导入excel数据生成一个数据表 1、先选择导入的数据库右键任务=》选择导入数据 2、选择导入的数据源excel 3、选择excel的的地址和格式。 如果不知道格式的可以excel、另存改格式。 4、选择选择OLE DB Provider ,点击 下一步(Next) 5、选择默认下一步。 6、勾选 源…

20242935 2024-2025-2 《网络攻防实践》第三周作业

20242935 2024-2025-2 《网络攻防实践》第三周作业 网络嗅探与协议分析 一、实验要求 (1)动手实践tcpdump 使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探,回答问题:你在访问www.tianya.cn网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什…

ASE40N30-ASEMI电源管理专用ASE40N30

ASE40N30-ASEMI电源管理专用ASE40N30编辑:LL ASE40N30-ASEMI电源管理专用ASE40N30 型号:ASE40N30 品牌:ASEMI 封装:TO-220F 最大漏源电流:40A 漏源击穿电压:300V 批号:最新 RDS(ON)Max:12mΩ 引脚数量:3 沟道类型:N沟道MOS管 封装尺寸:如图 特性:MOS管、N沟道MO…

FANUC机器人维修SRVO-050报警代码诠析

仔细查阅发那科机器人所提供的故障原因及其相应的FANUC机器人维修处理措施,并逐条进行深入剖析。机器人发出碰撞报警,通常可以归结为以下六种情形。即机器人确实发生了碰撞,因此触发了报警机制。这一问题多发生在机器人的初期调试阶段,往往是由于调试人员对于空间概念的把…

京准电钟:高精度北斗卫星对时装置电力系统改造方案

京准电钟:高精度北斗卫星对时装置电力系统改造方案京准电钟:高精度北斗卫星对时装置电力系统改造方案 京准电钟:高精度北斗卫星对时装置电力系统改造方案 京准电钟官微——ahjzsz随着电力系统对时间同步精度、安全性和自主可控需求的提升,北斗卫星授时技术逐渐替代GPS成为主…

IDEA Plugins:GitToolBox

官网插件下载: https://plugins.jetbrains.com/plugin/7499-gittoolbox/versions/stable 一定要选择IDEA对应的版本 下载后离线安装 安装后重启IDEAI have a dream : Sandy beach B-J-N.

北京大学DeepSeek全家桶(大礼包免费下载)

【摘要】 最近被北京大学发布的DeepSeek系列技术文档刷屏了,曾经,我以为AI还只是实验室里遥不可及的神秘代码,如今才明白,它早已飞入寻常百姓家,成为我们生活里不可或缺的得力助手。全6册PDF资料已打包,点击下载 https://www.linuxyz.cn/5633.html 一、技术原理:国产AI的…

《数字化时代质量工程白皮书2021版》读书笔记

《数字化时代质量工程白皮书2021版》读书笔记 概念质量评估:QPS 每秒查询数、TPS 每秒处理数、响应时间、吞吐量SLA相关使用:MTTF平均故障时间、MTBF平均故障间隔时间、MTTR平均修复时间测试准入评估:单元测试覆盖率、冒烟case通过率;测试准出评估:用例执行率、bug闭环率、…