并查集(非连通性问题)——# P2391 白雪皑皑
P2391 白雪皑皑题目背景“柴门闻犬吠风雪夜归人”冬天不期而至。千里冰封万里雪飘。空中刮起了鸭毛大雪。雪花纷纷降落人间。 美能量星球pty 在 spore 上的一个殖民地上的人们被这美景所震撼。但是 pty 却不高兴他不喜欢白色的世界他觉得这样太单调了。所以他想对雪花进行染色让世界变得多彩些。题目描述现在有nnn片雪花排成一列。 pty 要对雪花进行mmm次染色操作第iii次染色操作中把第((i×pq) mod n)1((i\times pq)\bmod n)1((i×pq)modn)1片雪花和第((i×qp) mod n)1((i\times qp)\bmod n)1((i×qp)modn)1片雪花之间的雪花包括端点染成颜色iii。其中p,qp,qp,q是给定的两个正整数。他想知道最后nnn片雪花被染成了什么颜色。没有被染色输出000。输入格式输入共四行每行一个整数分别为n,m,p,qn,m,p,qn,m,p,q意义如题中所述。输出格式输出共nnn行每行一个整数第iii行表示第iii片雪花的颜色。输入输出样例 #1输入 #14 3 2 4输出 #12 2 3 0说明/提示对于20%20\%20%的数据满足n,m≤1000n,m\leq 1000n,m≤1000。对于40%40\%40%的数据满足n≤8000n\leq 8000n≤8000m≤106m\leq 10^6m≤106。对于80%80\%80%的数据满足n≤5×105n\leq 5\times 10^5n≤5×105m≤107m\leq 10^7m≤107。对于100%100\%100%的数据满足1≤n≤1061\leq n\leq 10^61≤n≤1061≤m≤1071\leq m\leq 10^71≤m≤107。保证1≤m×pq,m×qp≤2×1091\leq m\times pq,m\times qp\leq 2\times 10^91≤m×pq,m×qp≤2×109。代码#includebits/stdc.husingnamespacestd;constintMAXN1e65;// 常量名更语义化structSnowflake{intcolor;// 雪花最终染色编号0表示未染色intnext;// 以当前位置为起点首个未染色的位置路径压缩用}snow[MAXN];// 并查集查找找到x位置开始的首个未染色位置路径压缩优化intfind(intx){if(snow[x].next!x){snow[x].nextfind(snow[x].next);// 路径压缩直接指向最终未染色位置}returnsnow[x].next;}intmain(){ios::sync_with_stdio(false);// 加速cin/cout应对1e6量级数据cin.tie(nullptr);intn,m,p,q;// n:雪花总数 m:染色操作数 p/q:随机数参数cinnmpq;// 初始化所有雪花未染色每个位置的首个未染色位置是自身n1作为边界哨兵for(inti1;in1;i){snow[i].color0;snow[i].nexti;}// 逆序处理染色操作后执行的操作覆盖先执行的保证每个位置只染最后一次for(intopm;op1;--op){// 计算当前操作的染色区间 [l, r]保证1lrnintpos1((1LL*op*pq)%n)1;// 1LL防止乘法溢出intpos2((1LL*op*qp)%n)1;intlmin(pos1,pos2);intrmax(pos1,pos2);// 遍历区间内所有未染色位置通过find直接跳转到未染色位置避免重复遍历for(intjfind(l);jr;jfind(j)){snow[j].colorop;// 标记为当前操作的颜色逆序保证是最后一次染色snow[j].nextj1;// 染完后该位置的首个未染色位置指向右侧}}// 输出每个雪花的最终颜色for(inti1;in;i){coutsnow[i].color\n;// \n比endl快避免刷新缓冲区}return0;}总结并查集「非连通性问题」的经典应用非常规的合并 / 查找而是路径压缩的灵活复用解决了大量区间覆盖 / 跳过已处理元素的问题。用并查集的「路径压缩」特性跳过已处理区间将区间染色的时间复杂度从暴力O(mn) 优化到O(nα(n))(α(n) 是阿克曼反函数近乎常数逆序处理覆盖类操作保证每个位置只处理最后一次有效操作避免重复计算初始化到n1 作为「哨兵位置」避免处理最后一个位置时的越界判断简化逻辑。

相关新闻

【Spring】Cookie和Session是什么

【Spring】Cookie和Session是什么

文章目录 回顾 Cookie理解 SessionCookie 和 Session 的区别 回顾 Cookie HTTP 协议自身是属于“无状态”协议 无状态:默认情况下,HTTP 协议的客户端和服务器之间的这次通信和下次通信之间没有直接的联系 但是在实际开发中,我们很多时候是…

2026/7/16 11:08:37 阅读更多 →
学霸同款 9个一键生成论文工具测评:继续教育毕业论文写作必备神器

学霸同款 9个一键生成论文工具测评:继续教育毕业论文写作必备神器

在当前学术研究与论文写作日益数字化的背景下,继续教育群体面临着时间紧张、资源有限、写作技巧不足等多重挑战。如何高效完成毕业论文,成为许多学员亟需解决的问题。为此,笔者基于2026年的实测数据与用户真实反馈,对市面上主流的…

2026/7/15 5:30:12 阅读更多 →
汇川机器人21版本Demo程序逻辑探秘

汇川机器人21版本Demo程序逻辑探秘

汇川机器人Demo 程序 逻辑 SOP 本文档针对于 21 版本的 DEMO 程序逻辑进行梳理。 通过程序 demo,提供了一种编程逻辑思 想,目的是做到快速入门。 但是并不是唯一写法,用户可以在此程序框架基础上进行删减修 改,亦可根据实际功能需要&#x…

2026/7/14 13:13:36 阅读更多 →

最新新闻

16-Java反射机制:Spring IOC背后的核心技术

16-Java反射机制:Spring IOC背后的核心技术

Java反射机制:Spring IOC背后的核心技术 开篇:为什么框架能自动创建对象? 你有没有想过:Spring里你只写了一个Service注解,Spring就能自动创建对象、注入依赖、调用方法。它是怎么做到的? 答案就是反射。反…

2026/7/17 0:56:33 阅读更多 →
数智化转型深水区破局:智圣新创全局型数据治理与赋能体系全国高校落地指南

数智化转型深水区破局:智圣新创全局型数据治理与赋能体系全国高校落地指南

当前国内绝大多数高校已经走完智慧校园基础建设期,随着教育数字化战略的持续推进,存量系统的效能释放、数据价值的深度挖掘成为新阶段的核心建设目标,智圣新创全局型数据治理与赋能体系正是针对这一行业共性需求打造的落地方案,目…

2026/7/17 0:56:33 阅读更多 →
智能问数DataChat,让管理者直接用大白话查数据

智能问数DataChat,让管理者直接用大白话查数据

每周一早上,很多企业的管理者都在等同一份东西——上周的生产经营数据报表。报表要靠统计员从ERP、MES、品质系统里一个个捞数据,再人工对齐、汇总,往往要到周一下午才能拿到,拿到的还是上周的数据。决策永远滞后于现实。这背后是…

2026/7/17 0:54:32 阅读更多 →
json.loads()一遇到引号就崩溃?90%的Python新手都栽在这个坑里

json.loads()一遇到引号就崩溃?90%的Python新手都栽在这个坑里

json.loads()报错,求指教 博客展示了这样一种于其中的情况, 该情况是在把含有转义字符串的字符转换成为JSON之际, 遭遇到了报错, 代码试着运用json.loads方法去进行转换, 然而运行却是报错了, 给出了详尽的错误信息, 并且还提供了转载的来源。 笔记, 解决, json.l…

2026/7/17 0:52:31 阅读更多 →
ChatGPT做思维导图的终极瓶颈突破:基于LLM上下文压缩算法的深度分层技术(实测支持200+节点无坍塌)

ChatGPT做思维导图的终极瓶颈突破:基于LLM上下文压缩算法的深度分层技术(实测支持200+节点无坍塌)

更多请点击: https://intelliparadigm.com 第一章:ChatGPT做思维导图的终极瓶颈突破:基于LLM上下文压缩算法的深度分层技术(实测支持200节点无坍塌) 传统LLM驱动的思维导图生成常在节点超过80个后出现语义坍塌、层级错…

2026/7/17 0:52:31 阅读更多 →
go: Recursion Algorithm

go: Recursion Algorithm

/* # 版权所有 2026 ©涂聚文有限公司™ # 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎 # 描述:Recursion Algorithm # Author : geovindu,Geovin Du 涂聚文. # IDE : goLang 2024.3.6 go 26.2 # os …

2026/7/17 0:50:30 阅读更多 →

日新闻

2026全国外贸独立站搭建公司推荐排行,含零代码SAAS、AI编程、源码定制

2026全国外贸独立站搭建公司推荐排行,含零代码SAAS、AI编程、源码定制

2026全国外贸独立站搭建公司推荐排行 外贸工厂、工贸企业建设官网,核心需求与普通展示型网站并不相同。除了页面整洁、多语言适配和海外访问体验,企业还要重点考虑数据能否导出、站点能否迁移、源码是否可控、后续费用是否透明,以及更换服务…

2026/7/17 0:02:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第19篇:3D 翻转动画实现——ArkTS 动画系统全解析

HarmonyOS 应用开发《掌上英语》第19篇:3D 翻转动画实现——ArkTS 动画系统全解析

3D 翻转动画实现——ArkTS 动画系统全解析引言 在移动应用中,卡片翻转动画是最受欢迎的交互动效之一,它能给用户带来直观的"物理世界"操作感。在我们的英语学习 App 的单词学习页面(CourseHomePage.ets)中,就…

2026/7/17 0:02:10 阅读更多 →
2026键盘推荐|IQUNIX EV63多场景适配,不允许有人不知道!

2026键盘推荐|IQUNIX EV63多场景适配,不允许有人不知道!

现在很多用户都需要一款能适配多场景的键盘,既能满足交流码字的需求,又能应对居家电竞的性能需求,最好还得有点小颜值。而大多键盘都只能兼顾其中一两个场景。这次我实测了IQUNIX EV63三款配色(银武士、黑武士、紫罗兰&#xff09…

2026/7/17 0:04:10 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/15 21:09:01 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/15 19:42:20 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/16 23:40:37 阅读更多 →

月新闻