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 来表示.某些岛之间由巨大的桥连接,通过桥可以 ...
随机推荐
- Codeforces 590D Top Secret Task
D. Top Secret Task time limit per test 3 seconds memory limit per test 256 megabytes input standard ...
- 数据库中DQL、DML、DDL、DCL的概念与区别
SQL(Structure Query Language)语言是数据库的核心语言. SQL语言共分为四大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL. 1. 数据 ...
- dos 设置 Windows 网络命令
dos 设置Windows 命令: netsh interface ip set address name="本地连接" source=static addr=172.16.12. ...
- luogu P2303 [SDOi2012]Longge的问题
传送门 \[\sum_{i=1}^{n}\gcd(i,n)\] 考虑枚举所有可能的gcd,可以发现这一定是\(n\)的约数,当\(\gcd(i,n)=x\)时,\(gcd(\frac{i}{x},\f ...
- [HNOI2009]最小圈 (二分答案+负环)
题面:[HNOI2009]最小圈 题目描述: 考虑带权的有向图\(G=(V,E)\)以及\(w:E\rightarrow R\),每条边\(e=(i,j)(i\neq j,i\in V,j\in V) ...
- bzoj 4184: shallot (线段树维护线性基)
题面 \(solution:\) 这一题绝对算的上是一道经典的例题,它向我们诠释了一种新的线段树维护方式(神犇可以跳过了).像这一类需要加入又需要维护删除的问题,我们曾经是遇到过的像莫对,线段树... ...
- Sql server 查询某个时间段,分布有几周,几月和几日
1. 查询:以“周”为单位 --查询以下时间段内分别有几周 --时间段:“2017-09-01”到“2017-10-1” select number as wknum from master..spt ...
- python 多线程中子线程和主线程相互通信
主线程开启多个线程去干活,每个线程需要完成的时间不同,干完活以后都要通知给主线程,下面代码说明该应用: 代码块: import threading import queue import time i ...
- 【加密】Md5Util
import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class Md5U ...
- python渗透
计划写一个获取qq空间加密相册的工具. 分析: 她的相册密码是手机号,先写一个生成手机号的脚本 空间有她之前的手机号,那么她现在的手机号也极有可能是一样的运营商,比如移动(缩小密码范围) 自己新建一个 ...