Overcooked!(并查集区间元素合并优化)

本题链接:登录—专业IT笔试面试备考平台_牛客网登录—专业IT笔试面试备考平台_牛客网登录—专业IT笔试面试备考平台_牛客网

题目:

样例:

输入
5 5
1 1 2
3 1 2
2 2 4
3 1 4
3 2 5
输出
YES
YES
NO

思路:

        根据题意,这是个模板的并查集,但是多了一个操作,就是合并区间多个元素为一个集合。

        其中合并区间多个元素为一个集合的核心是,存一个区间合并的 ne 数组。

初始化操作

// 初始化操作
inline Init()
{for(int i = 1;i <= n ;++i) f[i] = i,ne[i] = i + 1;
}

多个元素区间合并操作

int L = a,R = b;
int t = ne[L];
for(int i = L ;i <= R;i = t)
{Union(i,R);t = ne[i];ne[i] = ne[R];
}

具体合并优化过程,跟着代码,在草稿纸上模拟走一遍就思路清晰了。

AC代码如下:

#include <iostream>
#include <vector>
#include <queue>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <unordered_map>
#define endl '\n'
#define x first
#define y second
#define int long long
#define YES puts("YES")
#define NO puts("NO")
#define umap unordered_map
#define All(x) x.begin(),x.end()
#pragma GCC optimize(3,"Ofast","inline")
#define IOS std::ios::sync_with_stdio(false),cin.tie(0), cout.tie(0)
using namespace std;
const int N = 2e6 + 10;
inline void solve();signed main()
{
//	freopen("a.txt", "r", stdin);IOS;int _t = 1;
// 	cin >> _t;while (_t--){solve();}return 0;
}int f[N],n,ne[N],m;
inline int Finds(int x)
{int t = x;while(x != f[x]) x = f[x];f[t] = x;return x;
}
inline void Union(int a,int b)
{a = Finds(a),b = Finds(b);f[a] = b;
}
inline void Init()
{for(int i = 1;i <= n;++i) f[i] = i,ne[i] = i + 1;
}
inline void solve()
{cin >> n >> m;Init();while(m--){int op,a,b;cin >> op >> a >> b;if(op == 1) Union(a,b);else if(op == 2){int L = a,R = b;int t = ne[L];for(int i = L ;i <= R;i = t){Union(i,R);t = ne[i];ne[i] = ne[R];}}else{if(Finds(a) != Finds(b)) NO;else YES;}}
}

 最后提交:

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

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

相关文章

.NET开源免费、功能强大的 Windows 截图录屏神器

前言 今天大姚给大家分享一款.NET开源免费&#xff08;基于GPL3.0开源协议&#xff09;、功能强大、简洁灵活的 Windows 截图、录屏、Gif动图制作神器&#xff1a;ShareX。 功能特性 ShareX 是一个开源的屏幕捕捉工具&#xff0c;具有丰富的功能特性&#xff0c;包括但不限于…

内网exp对抗

内网工具对抗 首先&#xff0c;你需要分析&#xff1a; 1、安全工具是否有源代码 2、安全工具源代码逻辑复杂程度 3、当前源代码你是否有能力修改 其次&#xff0c;你需要考虑&#xff1a; 1、无源码或无能力修改 2、各种异常bug打包问题 3、修改打包后效果也不太好 故…

中证数据社招笔试题【第一卷带答案】

一、单选题 根据决策条件的可控程度&#xff0c;决策可以分为&#xff1a;确定型决策、风险型决策和非确定型决策打篮球时扭伤了脚&#xff0c;下列措施不可取的是&#xff1a;立即用热毛巾敷扭伤部位我国独立自主的和平外交政策&#xff0c;应坚持把&#xff1a;国家主权和国…

设置asp.net core WebApi函数输入和返回类型中的属性名称开头大小写格式

以下列类型定义为例创建简单的ASP.NET Core的WebApi函数&#xff0c;此时输入参数和返回结果的属性名称开头默认为小写&#xff0c;如下图所示。 public class UserInfo { public string UserName { get; set; }public string UserSex { get; set; }public string UserP…

代码随想录算法训练营第三十六天 | 35. 无重叠区间、763. 划分字母区间、56. 合并区间

代码随想录算法训练营第三十六天 | 35. 无重叠区间、763. 划分字母区间、56. 合并区间 35. 无重叠区间题目解法 763. 划分字母区间题目解法 56. 合并区间题目解法 感悟 35. 无重叠区间 题目 解法 更新区间&#xff0c;只保留最小区间&#xff0c;局部最优&#xff0c;推到最优…

阿里云服务器多少钱一个月?低至5元1个月

阿里云服务器一个月多少钱&#xff1f;最便宜5元1个月。阿里云轻量应用服务器2核2G3M配置61元一年&#xff0c;折合5元一个月&#xff0c;2核4G服务器30元3个月&#xff0c;2核2G3M带宽服务器99元12个月&#xff0c;轻量应用服务器2核4G4M带宽165元12个月&#xff0c;4核16G服务…

力扣Lc23--- 290. 单词规律(java版)-2024年3月27日

1.题目描述 2.知识点 1&#xff09;思路 &#xff08;1&#xff09;s.split(" "); 是将字符串 s 按空格进行分割&#xff0c;得到一个单词列表。 &#xff08;2&#xff09;建立模式字符和单词之间的双向映射关系&#xff0c;我们可以使用两个哈希映射&#xff08;或…

验证码/数组元素的复制.java

1&#xff0c;验证码 题目&#xff1a;定义方法实现随机产生一个5位的验证码&#xff0c;前面四位是大写或小写的英文字母&#xff0c;最后一位是数字 分析&#xff1a;定义一个包含所有大小写字母的数组&#xff0c;然后对数组随机抽取4个索引&#xff0c;将索引对应的字符拼…

做跨境用什么代理IP?如何分辨代理IP类型?

跨境外贸是近几年来的热门行业&#xff0c;在众多助力跨境出海的工具中&#xff0c;代理IP也是强力的一大保障。不仅可以帮助企业拓展更大的地区市场&#xff0c;更加顺畅进行市场调查&#xff0c;更重要地&#xff0c;在TikTok、Amazon、Ebay、Instagram、Etsy等等跨境平台业务…

Day23:事务管理、显示评论、添加评论

事务管理 事务的定义 什么是事务 事务是由N步数据库操作序列组成的逻辑执行单元&#xff0c;这系列操作要么全执行&#xff0c;要么全放弃执行。 事务的特性(ACID) 原子性(Atomicity):事务是应用中不可再分的最小执行体&#xff08;事务中部分执行失败就会回滚 。一致性(C…

教程2_图像的合并及融合

1、图像加法 您可以通过OpenCV函数 cv.add() 或仅通过 numpy 操作 res img1 img2 添加两个图像。两个图像应具有相同的深度和类型&#xff0c;或者第二个图像可以只是一个标量值。 注意: OpenCV加法和Numpy加法之间有区别。OpenCV加法是饱和运算&#xff0c;而Numpy加法是模运…

Multimodal Chain-of-Thought Reasoning in Language Models阅读笔记

论文&#xff08;2023年&#xff09;链接&#xff1a;https://arxiv.org/pdf/2302.00923.pdf GitHub项目链接&#xff1a;GitHub - amazon-science/mm-cot: Official implementation for "Multimodal Chain-of-Thought Reasoning in Language Models" (stay tuned a…