题目来源: CodeForces
基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题

有n个人在公司里面工作。员工从1到n编号。每一个人属于一个部门。刚开始每一个人在自己的部门负责自己的项目,这样的话公司里面就有n个部门。

然而,公司内部出现了危机,需要合并一些部门,以提高工作效率。team(person) 表示person这个人所在的部门。有以下两种合并操作:

1.    合并 team(x) 和 team(y)。 x和 y (1≤x,y≤n)是员工编号。如果team(x) 和 team(y)是同一个部门,那么就不操作。

2.    合并team(x),team(x+1),...,team(y),x 和 y (1≤x≤y≤n)是员工编号。

有一些查询操作,查询员工x 和 y (1≤x,y≤n)是否属于同一部门。

Input
单组测试数据。
第一行有两个整数n 和 q (1≤n≤200000, 1≤q≤500000)表示员工的数目和操作数目。
接下来q行,每行的格式是type x y。type∈{1,2,3}。如果type=1 或者 type=2,那么表示第一种或者第二种合并操作。如果type=3,表示查询员工x和y是否属于同一部门。
Output
对于第三种查询,如果属于同一部门输出YES,否则输出NO。
Input示例
样例输入1
8 6
3 2 5
1 2 5
3 2 5
2 4 7
2 1 2
3 1 7
Output示例
样例输出1
NO
YES
YES

并查集 
pre数组记录的是前面第一个与他是不是同个部门的点。
因为记录的是前面一个 所以2操作要倒过来合并
找题的时候突然看到这题没做完,
然后发现 原来离A掉这个题 只差一个读入优化
屠龙宝刀点击就送
#include <cstdio>
#include <cctype>
#define N 205000
int n,q,fa[N],pre[N];
int find_(int x) {return x==fa[x]?x:fa[x]=find_(fa[x]);}
template<typename T>
inline void read(T &x)
{register char ch=getchar();for(x=0;!isdigit(ch);ch=getchar());for(;isdigit(ch);x=x*10+ch-'0',ch=getchar());
}
int main()
{read(n);read(q);for(int i=1;i<=n;++i) fa[i]=i,pre[i]=i-1;for(int opt,x,y;q--;){read(opt);read(x);read(y);if(opt==1) fa[find_(y)]=find_(x);else if(opt==2){int end,i=y;for(;i>=x&&(end=pre[i])>=x;i=end){fa[find_(end)]=fa[find_(i)];pre[i]=pre[end];}}else{if(find_(x)==find_(y)) puts("YES");else puts("NO");}}return 0;
}

转载于:https://www.cnblogs.com/ruojisun/p/7648036.html

51nod 1525 重组公司相关推荐

  1. 傻白入门芯片设计,华人CEO掌舵的全球十大半导体公司(十七)

    目录 半导体产业的三大转移 一.台积电(TSMC) 二.博通(Broadcom) 三.华为海思 四.英伟达(Nvidia) 五.联发科技(MediaTek) 六.超微半导体(AMD) 七.联电(UMC ...

  2. 可口可乐公司2020年四季度营收86.1亿美元,每股收益高于预期

    美国时间2月10日,可口可乐公司发布2020年第四季度及全年财报.财报显示,可口可乐公司第四季度营收为86.1亿美元,符合市场预期:经营利润为23.4亿美元,同比增长8%:每股收益为0.47美元,高于 ...

  3. 对话Roadstar投资人:一家自动驾驶公司之死(二)...

    6.衡量担任代理 CEO 雷锋网:去年 9 月之后,为什么会提议让衡量来做 CEO?周光有没有想过自己做 CEO,为什么最后还是选了衡量? 投资人代表 2:我们从头到尾,至少在 1 月 21 号之前, ...

  4. 公司上市的条件和程序

    公司上市条件和程序 1.在中国的主板市场上市,公司所具备的条件是股本5000W以上,连续3年盈利,近三年内无重大违法现象.公司对外发放的股数必须达到公司总股本的25% . 2.中国公司到香港上市的条件 ...

  5. 好大一盘棋:谷歌光纤再下一城

    据悉,谷歌光纤(Google Fiber)开始入驻硅谷的心脏--圣荷西,尽管圣荷西政府对此事依然守口如瓶,但本周二谷歌公司已申请到许可证,开始建设两个安装网络设备的"光纤小屋",标 ...

  6. 拥抱对手 微软崛起或靠“云计算”业务

    Office和云计算两块业务就占据微软7成以上利润,是名副其实的现金牛.微软在积极推动跨平台和云服务,不过,在微软内部,其重要性已逐渐被Office和云这两大业务赶超. 和多数微软员工的感觉一样,邓力 ...

  7. 面对这么多困境,梅耶尔还能怎么应对?

    不出意外下周雅虎董事会将迎来一次争斗. 2月2日雅虎将公布其最新的财报数据,据外媒援引知情人士的消息称,梅耶尔计划在财报电话会议上讲述其下一步战略计划,然后评估股东的反应. 当前,雅虎仍在继续抵制投资 ...

  8. Rust 社区求变,PHP 大旗不倒?

    文 | 一君 出品 | OSC开源社区(ID:oschina2013) 上月底发生了两件开源语言相关的大事. 一是 JetBrains 牵头成立 PHP 基金会,希望能确保语言的长寿和繁荣.二是 Ru ...

  9. “反催收”渐成黑灰产业 专家呼吁协同治理“债闹”黑灰产

    4月6日消息,日前,央视财经频道报道近日多位借款逾期者轻信网上的"反催收组织"逃债服务,中招了"维权"外衣下的"债闹"连环套.节目中,中国社 ...

最新文章

  1. Android进程保活招式大全
  2. 第一次听人用男女关系讲 N(Non-Blocking)I(进)O(出),涨姿势了
  3. java8生成jsp页面内容组装到jsp中_JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署...
  4. 【复习】操作系统第一章
  5. python winsound_将winsound转换为linux平台?
  6. Python crypto模块实现RSA和AES加密解密
  7. PHP提高编程效率的方法
  8. 2.SQL里的聚合函数
  9. Altium Designer使用-----LOGO脚本的使用
  10. RabbitMQ使用例子
  11. Qt 出现空指针错误:The inferior stopped because it received a signal from the Operating System
  12. 连续两次入围Gartner魔力象限的Quick BI到底有何魔力?
  13. 一级建造师课件下载建筑工程行业会计分录汇总非常全建议收藏!
  14. 方块填数 “数独”是当下炙手可热的智力游戏。一般认为它的起源是“拉丁方块”,是大数学家欧拉于1783年发明的。 如图[1.jpg]所示:6x6的小格被分为6个部分(图中用不同的颜色区分),每个部
  15. 四轴自适应控制算法的一些尝试开源我的山猫飞控和梯度在线辨识自适应等算法
  16. 谈谈科学与宗教的关系
  17. win10版本号怎么查看
  18. 编曲混音必备法宝——FL三大效果器简介
  19. Windows 故障恢复控制台应用详解
  20. iOS运行错误:Command /Applications/Xcode 2.app/Contents/Developer/usr/bin/actool failed with exit code 25

热门文章

  1. 深度 | 一条查询SQL的前世今生 —— ClickHouse 源码阅读
  2. 高可用高并发的 9 种技术架构
  3. 用Kotlin写一个基于Spring Boot的RESTful服务
  4. STL:priority_queue
  5. es 插入数据_记录一次Java导入百万级数据到Elasticsearch经历
  6. opencv4 c++ 提取图片中的白色区域_【从零学习OpenCV 4】形态学应用
  7. zookeeper是做什么用的_做橱柜用什么门板好 选对很关键
  8. android ext3 格式化,怎样将TF卡格式化为EXT分区?
  9. mysql 对象名无效_如何解决“SQL对象名无效”的问题
  10. 运维工程师仪表免费换新活动开始了…任何品牌万用表、钳表、测温仪都可以换福禄克万用表、钳表、测温仪...