Codeforces 566 D. Restructuring Company
Description
一开始有 \(n\) 个元素,可以进行几个操作.
合并 \(x,y\) .
合并 \(x,x+1,...,y\) .
询问 \(x,y\) 是否在一个集合中.
Sol
并查集+链表.
第二个询问,一直用链表找 \(pre\) 优化一下就可以了.
另外 51Nod 1525 重组公司.
Code
#include<cstdio>
#include<utility>
#include<algorithm>
#include<iostream>
using namespace std; const int N = 200005; int n,q;
int f[N],pre[N]; inline int in(int x=0,char ch=getchar()){ while(ch>'9' || ch<'0') ch=getchar();
while(ch>='0' && ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar();return x; }
int find(int x){ return f[x]==x?x:f[x]=find(f[x]); }
int main(){
n=in();
for(int i=1;i<=n;i++) f[i]=i,pre[i]=i-1;
for(int q=in(),t,x,y,r1,r2;q--;){
t=in(),x=in(),y=in();
switch(t){
case 1:x=find(x),y=find(y),f[y]=x;break;
case 2:
for(r1=find(x),r2=y;y>=x;y=pre[y]) f[find(y)]=r1;
pre[r2]=y;break;
default:if((x=find(x)) == (y=find(y))) puts("YES");
else puts("NO");break;
}
}return 0;
}
Codeforces 566 D. Restructuring Company的更多相关文章
- codeforces 566D D. Restructuring Company(并查集)
题目链接: D. Restructuring Company time limit per test 2 seconds memory limit per test 256 megabytes inp ...
- CodeForces - 566D Restructuring Company 并查集的区间合并
Restructuring Company Even the most successful company can go through a crisis period when you have ...
- VK Cup 2015 - Finals, online mirror D. Restructuring Company 并查集
D. Restructuring Company Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...
- D. Restructuring Company 并查集 + 维护一个区间技巧
http://codeforces.com/contest/566/problem/D D. Restructuring Company time limit per test 2 seconds m ...
- Codeforces 556D Restructuring Company
传送门 D. Restructuring Company time limit per test 2 seconds memory limit per test 256 megabytes input ...
- CodeForces 566D Restructuring Company (并查集+链表)
题意:给定 3 种操作, 第一种 1 u v 把 u 和 v 合并 第二种 2 l r 把 l - r 这一段区间合并 第三种 3 u v 判断 u 和 v 是不是在同一集合中. 析:很容易知道是用并 ...
- 【VK Cup 2015 - Finals D】Restructuring Company
[题目链接]:http://codeforces.com/problemset/problem/566/D [题意] 给你n个人; 一开始每个人都隶属于一个部门; 之后给你q个操作; 3种操作类型; ...
- 【codeforces 794C】Naming Company
[题目链接]:http://codeforces.com/contest/794/problem/C [题意] 有n个位置; 两个人; 每个人都有n个字符组成的集合s1,s2(可以有重复元素); 然后 ...
- codeforces 794 C. Naming Company(贪心)
题目链接:http://codeforces.com/contest/794/problem/C 题意:有两个人每个人都有一个长度为n的字符串,两人轮流拿出一个字符串,放在一个长度为n的字符串的指定位 ...
随机推荐
- 10月17日下午MySQl数据库CRUD高级查询
高级查询:1.连接查询 #适用于有外键关系的 没有任何关系没法用select * from Info,Nation #同时查询这俩表并把两表每个数据相互组合,形成笛卡尔积 select * from ...
- JavaBean简单示例
本示例说明: 从Login.jsp中输入用户名和密码,提交,在NewFile.jsp中显示信息. ----- 类要放在一个包中!!! UserB 类文件 package model; public c ...
- linux设置和删除环境变量
删除环境变量: unset -v PKG_CONFIG_PATH 添加环境变量: export PKG_CONFIG_PATH="你需要设置的路径", 例如: export LAN ...
- git 删除远程分支
http://www.cnblogs.com/shiningrise/archive/2013/03/12/2956779.html 一不小心把本地的临时分支push到server上去了,想要删除.一 ...
- apk支持html video控制 ,是播放状态就暂停,暂停状态就播放
apk支持html video控制 <!DOCTYPE html> <html> <body> <div style="text-align:cen ...
- 2014-10-2 bug更新5 ecshop和ectouch解决动态ip登录超时和购物车清空问题
有客户说登陆网站后台操作的时候,会时不时的掉一下,要重新登陆才能继续操作,自动登出的频率快和时间短,针对这个问题是因为: 购物车问题原因的产生是因为动态IP的SESSEION机制导致很多在公司或者其他 ...
- AppDelegate方法中文记录
/// 在程序启动之后,重写自定义设置的位置 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOption ...
- iOS项目重命名以及Xcode修改Scheme名称图文详解 (yoowei)
在iOS开发中,有时候想改一下项目的名字,都会遇到很多麻烦.温馨提醒:记得备份. 看到项目名称,总感觉有点low,所以尝试着要将其更改一下. 项目原结构如下: 更改后的项目结构如下: 下面开始更改操作 ...
- RabbitMQ 用户角色详解
RabbitMQ的用户角色分类:none.management.policymaker.monitoring.administrator RabbitMQ各类角色描述:none不能访问 managem ...
- 用户信息 Froms验证票证
Froms票证是为了存储一些有用信息在客户端..一般都与Cookie一起使用.. , entity.LoginName, DateTime.Now, DateTime.Now.AddMonths( ...