题解:P1196 [NOI2002] 银河英雄传说

news/2025/10/21 16:38:40/文章来源:https://www.cnblogs.com/Noivelist/p/19155784

P1196 [NOI2002] 银河英雄传说

这是一道绿题
核心考察点只有一个: 那就是带权并查集


\(\mathcal{Part\ I}\)

我们检查题意不难发现这道题的要求无非两个:
$\ \ $ 1 ) 维护多个链的不断合并,但是以链中某节点作为索引
$\ \ \ \ \ \ \ $ 所以我们考虑并查集
$\ \ $ 2 ) 查询两个节点是否在某个链中,并且求出他们之间的权值差
$\ \ \ \ \ \ \ $ 因为要查询权值,而且并查集没有什么很好的伴生算法,只能使用带权并查集


\(\mathcal{Part\ II}\)

实现过程的话。。。其实就是标程
讲一遍吧(
$\ $
初始化并查集,这里分两步:

合并的时候,我们把第一集合的祖先的祖先插到第二集合的祖先上
这时关键的点在于不用更新每一个第一集合的点
我们退而求其次,只更新第一集合原祖先到队头的距离和当前总集合的大小
最后因为还要路径压缩,在路径压缩的时候顺下来就好了


查询的时候,我们查询的时候因为也要调用find函数两次,所以也可以帮忙顺一遍并查集的权值
这里的代码框架的好处就在于,不管我们要进行哪些操作,我们的更新写在find里,导致我们不用担心合并-查询的数据崭新度
而我们查询的操作极其简单,查询两个节点的祖先是否在同一个
如果不是,输出 -1
如果是,那么输出他们两个在链上的权值差-1就好了,这个-1是因为要计算他们之间隔了多少个

非常愉快,这个代码就写完了
我这边单独把 find 贴出来方便理解


int Find(int x) {if (x == fa[x]) return x; //回溯操作int k = fa[x]; //临时变量fa[x] = Find(fa[x]); //路径压缩s[x] += s[k]; //更新权值大小b[x] = b[fa[x]]; //更新集合大小return fa[x]; //传递
}

\(\LARGE{\mathcal{CODE}}\)


#include <bits/stdc++.h>using namespace std;const int N = 3e4 + 10;
int T, fa[N], s[N], b[N];int Find(int x) {if (x == fa[x]) return x;int k = fa[x];fa[x] = Find(fa[x]);s[x] += s[k];b[x] = b[fa[x]];return fa[x];
}void SolveM() {int x, y;cin >> x >> y;int dx = Find(x);int dy = Find(y);fa[dx] = dy;s[dx] += b[dy];b[dx] = b[dy] = b[dy] + b[dx];
}void SolveC() {int x, y;cin >> x >> y;int dx = Find(x);int dy = Find(y);if (dx != dy) {cout << "-1" << endl;return;}cout << abs(s[x] - s[y]) - 1 << endl;
}int main() {ios::sync_with_stdio(false);    cin.tie(nullptr);cout.tie(nullptr);cin >> T;for (int i = 1; i <= 30000; i++) {fa[i] = i;s[i] = 0;b[i] = 1;}while (T--) {char ch;cin >> ch;if (ch == 'M') {SolveM();}if (ch == 'C') {SolveC();}}return 0;
}

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

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

相关文章

配置即权限:从传统开源 RBAC 框架到 SPARK 的六层资料护盾,告别改权限就要改代码的魔咒

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年TYPE-C母座厂家权威推荐榜:防水/板上/沉板/立插/卧式/侧贴/贴片式/插件式全系列,5A大电流高速TID认证接口一站式供应

2025年TYPE-C母座厂家权威推荐榜:防水/板上/沉板/立插/卧式/侧贴/贴片式/插件式全系列,5A大电流高速TID认证接口一站式供应 随着电子设备向轻薄化、多功能化方向发展,TYPE-C接口凭借其正反插拔、高速传输和大功率充…

Oracle下查询数据库SQL ID

以下是常用查询SQLID的方法: 1. 通过 V$SQL 视图查询(常用) -- 根据SQL文本模糊查询SQLID SELECT sql_id, sql_text, executions, elapsed_time/1000000/executions as avg_elapsed_sec FROM v$sql WHERE sql_text …

深入解析:【数据结构】顺序表0基础知识讲解 + 实战演练

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年流量控制阀厂家推荐排行榜,液压流量控制阀,气动流量控制阀,高压流量控制阀,精密流量控制阀批发公司推荐

2025年流量控制阀厂家推荐排行榜:液压、气动与高压精密控制技术深度解析 在工业自动化与过程控制领域,流量控制阀作为关键执行元件,其性能直接影响整个系统的稳定性与效率。随着工业4.0和智能制造的深入推进,流量控…

楼里网站开发完成,产品进入交代期

在产品一期的过程中手忙脚乱,到产品二期已经从从容容游刃有余,要做的事情还有不少,走一步算一步。👏 哈喽大家好,在安静了一段时间之后,楼里产品系列二期,于2025年10月21日正式收尾。 ✅ 开发的时间周期不到一…

比特币挖矿盈利能力9月下降超7%

根据某投资机构报告,9月份比特币挖矿盈利能力下降超过7%,主要原因是网络算力上升和比特币价格下跌。北美上市矿企产量降至3401枚比特币,每EH/s收入从8月的5.6万美元降至5.2万美元。比特币挖矿盈利能力9月下降超7% 核…

LobeHub UI Kit

LobeHub UI Kit 漫思

实用指南:Chromium 138 编译指南 - Android 篇:配置depot_tools(四)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Nimm Game

模型介绍 Nim Game 是博弈论中最著名且最重要的模型之一,规则如下:有 \(n\) 堆物品,每堆分别有 \(a_1,a_2,\cdots,a_n\) 个; 两名玩家轮流操作; 每次只能从某一堆中取任意数量的物品(至少 \(1\) 个,至多取完该堆…

2025年陶瓷过滤机厂家权威推荐榜:真空/盘式/矿用/全自动/真空带式陶瓷过滤机,固液分离设备,尾矿处理设备,圆盘过滤机专业选购指南

2025年陶瓷过滤机厂家权威推荐榜:真空/盘式/矿用/全自动/真空带式陶瓷过滤机,固液分离设备,尾矿处理设备,圆盘过滤机专业选购指南 行业背景与发展趋势 固液分离技术作为现代工业生产中不可或缺的关键环节,在矿山、…

基于C++的远程键盘监控器设计与实现 - 教程

基于C++的远程键盘监控器设计与实现 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

2025年医药冷链运输厂家权威推荐榜:药品/临床样本/CAR-T/蛋白/诊断试剂/生物制品/血液/细胞/芯片全程温控,冷藏车/冷藏箱/保温箱/干冰/液氮及国际冷链进出口专业服务

2025年医药冷链运输厂家权威推荐榜:药品/临床样本/CAR-T/蛋白/诊断试剂/生物制品/血液/细胞/芯片全程温控,冷藏车/冷藏箱/保温箱/干冰/液氮及国际冷链进出口专业服务 随着生物医药产业的快速发展,医药冷链运输行业正…

2025 装修公司推荐排行榜单:江苏/浙江/制药厂/厂房/实验室/办公室/店面/净化室装修公司推荐,实测老客复购率与专业能力

引言 工装装修涉及厂房、实验室、净化车间等多场景,不同领域对施工标准、技术规范的要求差异显著,食品、制药、半导体等行业更有严苛的合规性要求。当前市场中,部分企业存在技术能力不足、施工质量参差、售后保障缺…

零代码改造 + 全链路追踪!Spring AI 最新可观测性详细解读

本文部分总结于 8 月的 LoongSuite 系列公开课及 AI 原生应用实战营 meetup 分享内容。作者:张铭辉(希铭) 本文部分总结于 8 月的 LoongSuite 系列公开课及 AI 原生应用实战营 meetup 分享内容。如需查看原视频欢迎…

xupt 3g移动开发实验室二面

2 B4026 [语言月赛 202409] 灵感 这天,迅风在欣赏某地的美景时,灵感大作,在上午及下午分别写下了两篇文章,而且迅风很喜欢数文章的字数。 具体地,如果迅风在下午写下的文章的字数之和严格大于他在上午写下的文章的…

2025年连铸机设备厂家权威推荐榜:扇形段/大包回转台/钢包中间罐/结晶器总成/拉矫机/输送辊道等核心部件专业解析

2025年连铸机设备厂家权威推荐榜:扇形段/大包回转台/钢包中间罐/结晶器总成/拉矫机/输送辊道等核心部件专业解析 连铸机作为现代钢铁生产中的关键设备,其性能直接影响着钢铁企业的生产效率和产品质量。随着钢铁行业向…

React使用useLocation监听url地址变化,工具URLSearchParams获取参数

React使用useLocation监听url地址变化,工具URLSearchParams获取参数React使用useLocation监听url地址变化,工具URLSearchParams获取参数import * as React from react import { Link, useLocation } from react-router…

碰一碰,秒更新!游戏近场快传助力多人联机无缝组队

在多人联机游戏场景中,玩家组队对战时因游戏版本不一致导致的体验中断问题长期存在。当游戏更新资源包体积庞大时,未及时更新的玩家需依赖网络下载,不仅消耗流量,还因等待时间过长引发用户流失。 HarmonyOS SDK 游…

Moka AI 驱动 HR系统转型实践案例:从技术探索到组织价值落地的全链路解析

Moka AI 驱动 HR系统转型实践案例:从技术探索到组织价值落地的全链路解析作为业内首个 AI 原生 HR SaaS 解决方案提供商,Moka 从 2018 年启动 AI 技术研发至今,已形成 “招聘 - 绩效 - 人才盘点 - 组织发展” 全场景…