2733: [HNOI2012]永无乡
题解:
爬到了bzoj的数据哈哈哈哈
然后提交上去t了 自己测只有1秒多呀 不理解
然后这题目就是个线段树/平衡树合并裸题
来练一下线段树合并 据说是nlogn的
#include <bits/stdc++.h>
using namespace std;
const int N=2e5;
#define rg register
#define IL inline
int n,m,fa[N],a[N],b[N],cnt,root[N],count2[N*],ls[N*],rs[N*];
bool f[N];
int find(rg int x)
{
rg int tmp;
if (fa[x]!=x) tmp=find(fa[x]);
else return(x);
fa[x]=tmp;
return(tmp);
}
IL void link(rg int x,rg int y)
{
x=find(x),y=find(y);
if (x!=y) fa[x]=y;
}
#define mid (h+t)/2
void insert(int &x,int goal,int h,int t)
{
if (!x) x=++cnt;
count2[x]++;
if (h==t) return;
if (goal<=mid) insert(ls[x],goal,h,mid);
else insert(rs[x],goal,mid+,t);
}
int query(int x,int y,int h,int t)
{
if (h==t)
if (y==&&x!=) return(h); else return();
if (count2[ls[x]]<y) return(query(rs[x],y-count2[ls[x]],mid+,t));
else return(query(ls[x],y,h,mid));
}
int merge(int &x,int &y)
{
if (x==) return(y);
if (y==) return(x);
ls[x]=merge(ls[x],ls[y]);
rs[x]=merge(rs[x],rs[y]);
count2[x]=count2[ls[x]]+count2[rs[x]];
return(x);
}
int main()
{
freopen("noi.in","r",stdin);
freopen("noi.out","w",stdout);
ios::sync_with_stdio(false);
cin>>n>>m;
for (rg int i=;i<=n;i++) cin>>a[i],b[a[i]]=i,fa[i]=i;
for (rg int i=;i<=m;i++)
{
int x,y;
cin>>x>>y;
link(x,y);
}
for (rg int i=;i<=n;i++)
{
int x=find(i);
insert(root[x],a[i],,N);
}
int qt;
cin>>qt;
b[]=-;
for (rg int i=;i<=qt;i++)
{
int x,y;
char cc;
cin>>cc;
cin>>x>>y;
if (cc=='Q')
{
x=find(x);
int t=query(root[x],y,,N);
cout<<b[query(root[x],y,,N)]<<endl;
}
if (cc=='B')
{
x=find(x); y=find(y);
if (x!=y)
{
fa[x]=y;
root[y]=merge(root[x],root[y]);
}
}
}
return ;
}
2733: [HNOI2012]永无乡的更多相关文章
- BZOJ 2733: [HNOI2012]永无乡 启发式合并treap
2733: [HNOI2012]永无乡 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pr ...
- bzoj 2733: [HNOI2012]永无乡 离线+主席树
2733: [HNOI2012]永无乡 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1167 Solved: 607[Submit][Status ...
- BZOJ 2733: [HNOI2012]永无乡(treap + 启发式合并 + 并查集)
不难...treap + 启发式合并 + 并查集 搞搞就行了 --------------------------------------------------------------------- ...
- BZOJ 2733: [HNOI2012]永无乡 [splay启发式合并]
2733: [HNOI2012]永无乡 题意:加边,询问一个连通块中k小值 终于写了一下splay启发式合并 本题直接splay上一个节点对应图上一个点就可以了 并查集维护连通性 合并的时候,把siz ...
- bzoj 2733: [HNOI2012]永无乡 -- 线段树
2733: [HNOI2012]永无乡 Time Limit: 10 Sec Memory Limit: 128 MB Description 永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自 ...
- Bzoj 2733: [HNOI2012]永无乡 数组Splay+启发式合并
2733: [HNOI2012]永无乡 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3955 Solved: 2112[Submit][Statu ...
- Bzoj 2733: [HNOI2012]永无乡(线段树+启发式合并)
2733: [HNOI2012]永无乡 Time Limit: 10 Sec Memory Limit: 128 MB Description 永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己 ...
- 线段树合并+并查集 || BZOJ 2733: [HNOI2012]永无乡 || Luogu P3224 [HNOI2012]永无乡
题面:P3224 [HNOI2012]永无乡 题解: 随便写写 代码: #include<cstdio> #include<cstring> #include<iostr ...
- 2733: [HNOI2012]永无乡 - BZOJ
Description 永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己的独一无二的重要度,按照重要度可 以将这 n 座岛排名,名次用 1 到 n 来表示.某些岛之间由巨大的桥连接,通过桥可以 ...
- bzoj 2733: [HNOI2012]永无乡
Description 永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己的独一无二的重要度,按照重要度可 以将这 n 座岛排名,名次用 1 到 n 来表示.某些岛之间由巨大的桥连接,通过桥可以 ...
随机推荐
- bootstrap中模态框的使用
1.代码: <%--登录模态框--%> <li><a href="#" data-toggle="modal" data-targ ...
- 解决从本地文件系统上传到HDFS时的权限问题
当使用 hadoop fs -put localfile /user/xxx 时提示: put: Permission denied: user=root, access=WRITE, inode=& ...
- springboot(七)邮件服务
简单使用 发送邮件应该是网站的必备功能之一,什么注册验证,忘记密码或者是给用户发送营销信息.最早期的时候我们会使用JavaMail相关api来写发送邮件的相关代码,后来spring退出了JavaMai ...
- 第二节--Servlet
1.在tomcat的webapp下新建一个web项目test 要有WEB-INF目录,其下有web.xml. 2.WEB-INF下文件是给tomcat使用的 3.用户访问localhost:848 ...
- 找第二大的数SQL-Second Highest Salary
1: 找小于最大的最大的 select max(Salary) from Employee where Salary<(select MAX(Salary) from Employee); 2. ...
- luogu P2596 [ZJOI2006]书架
传送门 感觉要死在\(Splay\)里了 orz 这题用\(Splay\)维护这个序列,其中的第\(k\)大点代表这个序列的第\(k\)个数 第一个操作,先把那个数所在的点旋到根,然后把整个根的左子树 ...
- TCP传输协议
TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接,四次挥手断开连接. 三次握手 是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接建立成功.在so ...
- tomcat顺序图摘要
1.Connector 处理一次请求顺序图 2.Context 和 wrapper 的处理请求时序图 3. 参考: https://www.ibm.com/developerworks/cn/java ...
- 运维数据库平台~inception审核规则详解
---恢复内容开始--- 一 简介:这次我们来介绍最核心的审核功能 二 讲解:简单来说 inception就是mysql的二次过滤,何谓二次过滤,我们知道,mysql本身都有自己的审核规则,为业界所通 ...
- Dom4j向XML中指定位置添加、删除、修改节点——(五)
需求: 在第一本书作者后面增加描述 <描述>好书</描述> 思路:获取书下面下的所有节点(一个list集合),在list集合指定位置添加一个元素(list.add(index ...