题解 P3295 【[SCOI2016]萌萌哒】

 先引用一下这位大佬的题解,对此我再进行细化

题解 P3295 【[SCOI2016]萌萌哒】 - 洛谷专栏icon-default.png?t=N7T8https://www.luogu.com.cn/article/it7foeu6并查集

首先是如何想出来需要并查集处理,下面是n=8,第一组约束条件是[1,4]和[5,8],如下图,那么

对应位置就应该是[1->5]  [2->6]......这些位置的数字是相同的,就相当于捆绑在一起了,回想并查集就是将具有相同特征的放在一个集合里(具有相同的根),于是我们这里便可以开四个并查集。

逆用st表

引出st表

对上述约束,在添加一条[1,2],[3,4]相等的约束,由于上一条3和7数字相同..那么这个时候3和1相同,那么7和1也应该相同,所以应该对其并查集进行合并,合并到1号这个并查集上,8号合并到2号上,考虑到更改,如果直接改,那就要遍历整段数,对其更改,例如n=32,每次取[1,16] [17,32]....[1,8] [9,16],依次类推,更新的时候就麻烦了,可以自己画个图看一下,时间复杂度n*m,是不可接受的,于是我们考虑是否可以在在某个位置打上标记,等修改结束后,在单独遍历一遍,然后对其更新,类似于线段树懒标记的思想。

然后就是对st表的逆应用

我们在选择标记(merge合并)的时候,首先第一步先把当前能跳的最大的位置个标记上,然后再从当前位置选择继续能跳到最大的位置进行标记。当标记完了之后,我们再对有标记的节点直接的节点打上标记,然后我们选择区间的中点进行,相当与反倍增了。倍增是从两段获取一段,这里是从一段返回去获得两段。如果还不理解可以打个表看看就明白了(就是输出当前f[i][j])。

for(int j=mx;j>=1;j--){for(int i=1;i+(1<<j)-1<=n;i++){int p=find(i,j);merge(i,p,j-1),merge(i+(1<<(j-1)),p+(1<<(j-1)),j-1);}}	

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

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

相关文章

算法的时间复杂度与空间复杂度

俗话说“条条大路通罗马”&#xff0c; 我们在用算法解决某一个问题时&#xff0c;往往会存在多种解决方法&#xff0c;但正如道路有远近之分&#xff0c;不同的算法也应该是有优劣的。为了更加清晰的量化算法的优劣&#xff0c;我们就需要引入算法的时间复杂度与空间复杂度了。…

我的 Android 性能书上架了!内附书籍介绍

大家好&#xff0c;我是拭心。 很高兴地向大家宣布&#xff0c;我的新书《Android 性能优化入门与实战》上架了&#xff01; 点击下面的小程序进行购买&#xff1a; 封面介绍 这本书的封面来自之前的投票文章 # 投票啦&#xff01;最新安卓进阶书籍封面由你来定&#xff0c;从四…

GB4806.10 食品接触用厨具炊具涂料涂层检测流程/服务

GB 4806.10是关于食品接触用涂料及涂层的食品安全标准。以下是关于该标准的一些详细信息&#xff1a; 1. 标准名称&#xff1a;GB 4806.10-2016食品安全标准 食品接触用涂料及涂层 2. 发布时间&#xff1a;该标准于2016年10月19日发布。 3. 实施时间&#xff1a;该标准的正式…

设计模式深度解析:深入浅出的揭秘游标尺模式与迭代器模式的神秘面纱 ✨

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 深入浅出的揭秘游标尺模式与迭代器模式的神秘面纱 开篇&#xff1a; 欢迎来到设计模式的神秘…

SpringBoot 统一后端返回格式、处理全局异常

文章目录 引言I 统一标准格式1.1 定义返回标准格式1.2 定义状态码1.3 返回数据模型1.4 枚举定义1.5 Json序列化处理1.6 获取枚举字典II 处理全局异常2.1 全局异常处理器2.2 自定义异常2.3 请求数据模型III 预备知识:注解3.1 JsonInclude3.2 JsonIgnoreProperties

unity中平台判断

public PlatformTypes mPlatformType; // 设备类型枚举 public enum PlatformTypes { Mobile 0, Pc 1 } switch (Application.platform) { case RuntimePlatform.Android: …

留服认证博士|中国社科院大学与英国斯特灵大学合办双证管理学博士

留服认证博士|中国社科院大学与英国斯特灵大学合办双证管理学博士 在中国“创新”不仅是社会发展的动力&#xff0c;并已经成为所有行业变革和发展的基础。培养能够在管理领域的理论、技术、实践等层面展开系统性的研究&#xff0c;并能带领团队解决其中关键节点的学生&#x…

Unity 打包真机脚本丢失的问题

记录Bug Bug详情分析解决方案附录 Bug详情 项目中导入了UI Particle的Package,用于处理特效层级 unity 运行效果正常&#xff0c;打包真机后运行时发现特效并没有正确显示&#xff0c;真机Log如下图 需要接入查看真机Log工具的点这里 查看图中Log发现对应的Prefab上挂载的脚本…

合并区间 - LeetCode 热题 14

大家好&#xff01;我是曾续缘&#x1f4ab; 今天是《LeetCode 热题 100》系列 发车第 14 天 普通数组第 2 题 ❤️点赞 &#x1f44d; 收藏 ⭐再看&#xff0c;养成习惯 合并区间 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, en…

【CSDN活动】程序员职业生涯的分水岭:年龄还是经验?

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 程序员职业生涯的分水岭&#xff1a;年龄还是经验&#xff1f;引言技术更新换代…

邮件营销工具的必备功能?如何选营销工具?

邮件营销工具的效果如何&#xff1f;营销工具怎么提升邮件营销&#xff1f; 一款优秀的邮件营销工具&#xff0c;不仅能够帮助企业高效地进行邮件发送&#xff0c;还能通过精准的数据分析和用户行为跟踪&#xff0c;提升营销效果。AokSend将探讨邮件营销工具的必备功能。 邮件…

Python机器学习赋能GIS:地质灾害风险评价的新方法论

地质灾害是指全球地壳自然地质演化过程中&#xff0c;由于地球内动力、外动力或者人为地质动力作用下导致的自然地质和人类的自然灾害突发事件。由于降水、地震等自然作用下&#xff0c;地质灾害在世界范围内频繁发生。我国除滑坡灾害外&#xff0c;还包括崩塌、泥石流、地面沉…

鉴源论坛丨形式化工程方法之需求建模(下)

作者 | 杨坤 上海控安可信软件创新研究院系统建模组 版块 | 鉴源论坛 观模 引言&#xff1a;需求建模是一种从源头确保软件质量的重要手段。需求建模可分为需求规约和需求确认两个部分&#xff0c;前者通过严格设计的形式化语言精确地将需求文档转换为了形式化规约&#xff0…

PASSL代码解读[01] readme

介绍 PASSL 是一个基于 PaddlePaddle 的视觉库&#xff0c;用于使用 PaddlePaddle 进行最先进的视觉自监督学习研究。PASSL旨在加速自监督学习的研究周期&#xff1a;从设计一个新的自监督任务到评估所学的表征。 PASSL 主要特性&#xff1a; 自监督前沿算法实现 PASSL 实现了…

为什么requests不是python标准库?

在知乎上看到有人问&#xff1a;为什么requests不是python标准库&#xff1f; 这确实是部分人困惑的问题&#xff0c;requests作为python最受欢迎的http请求库&#xff0c;已经成为爬虫必备利器&#xff0c;为什么不把requests直接装到python标准库里呢&#xff1f;可以省去第…

学习使用xbox手柄控制小乌龟节点移动

使用xbox手柄控制小乌龟&#xff0c;首先要下载joy功能包&#xff0c;发布sensor_msgs话题也就是手柄和ros通信的话题。 下载的步骤就根据官方文档即可 joy/Tutorials/ConfiguringALinuxJoystick - ROS Wiki 这里我提供一下具体步骤 第一步 安装joy 首先安装对应系统版本的…

山东省正规等保测评机构名称以及地址一览表

山东省正规等保测评机构名称以及地址一览表 序号&#xff1a;1 名称&#xff1a;山东新潮信息技术有限公司 地址&#xff1a;济南市二环东路东环国际广场A座2701室 序号&#xff1a;2 名称&#xff1a;联通数字科技有限公司山东省分公司 地址&#xff1a;山东省济南市市中…

【第二部分--Python之基础】02

二、运算符与程序流程控制 1、运算符 1.1 算术运算符 算术运算符用于组织整数类型和浮点类型的数据&#xff0c;有一元运算符和二元运算符之分。 一元算术运算符有两个&#xff1a;&#xff08;正号&#xff09;和-&#xff08;负号&#xff09;&#xff0c;例如&#xff1…

Java是用什么语言写的?PHP呢?

Java底层是C语言。 Sun公司研发人员根据嵌入式软件的要求&#xff0c;对C进行了改造&#xff0c;去除了留在C的一些不太实用及影响安全的成分&#xff0c;并结合嵌入式系统的实时性要求&#xff0c;开发了一种称为Oak的面向对象语言。而后&#xff0c;经过迭代更新&#xff0c…

SV-7041VP SIP塑料壳sip音箱支持POE供电(白色弧形)

SV-7041VP SIP塑料壳sip音箱支持POE供电 &#xff08;白色弧形&#xff09; 一、描述18123651365微信 SV-7041VP是深圳锐科达电子有限公司的一款壁挂式SIP网络有源音箱&#xff0c;具有10/100M以太网接口&#xff0c;可将网络音源通过自带的功放和喇叭输出播放&#xff0c;可…