题目名称 | 1341. [HNOI 2012] 永无乡 |
---|---|
输入输出 | bzoj_2733.in/out |
难度等级 | ★★★☆ |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试数据 | 10 |
题目来源 | QhelDIV 于2013-04-03加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:168, 提交:319, 通过率:52.66% | ||||
真呆菌 | 100 | 0.562 s | 15.38 MiB | C++ |
Youngsc | 100 | 0.682 s | 2.02 MiB | C++ |
Hale | 100 | 0.701 s | 23.40 MiB | C++ |
落痕 | 100 | 0.708 s | 2.02 MiB | C++ |
hzoi2017_nzy | 100 | 0.715 s | 1.83 MiB | C++ |
AAAAAAAAAA | 100 | 0.718 s | 24.73 MiB | C++ |
zhhe0101 | 100 | 0.726 s | 5.65 MiB | C++ |
... | 100 | 0.737 s | 2.58 MiB | C++ |
niconicoqaq | 100 | 0.749 s | 4.51 MiB | C++ |
半汪 | 100 | 0.755 s | 2.99 MiB | C++ |
本题关联比赛 | |||
随便比赛 | |||
并查集专题 |
关于 永无乡 的近10条评论(全部评论) | ||||
---|---|---|---|---|
注意动态开点要开 $nlogn$ 空间
| ||||
启发式合并awa
| ||||
pd_ds牛逼
| ||||
启发式的Splay跑的貌似有点慢
好吧 ,我的SB线段树更慢(雾
HT008
2018-03-23 10:26
24楼
| ||||
线段树合并
| ||||
线段树合并可以做到O(nlogV)的时间空间复杂度……
终于掌握了Treap的合并算法 | ||||
| ||||
好惨好惨……
调了一天……结果发现一个转的方向错了……身败名裂……
HZOI_蒟蒻一只
2017-05-25 08:49
20楼
| ||||
并查集 + BST直接过
WeiSama
2017-03-12 10:24
19楼
| ||||
向量数组不能用int&,否则会返回错误位置。
|
永无乡包含 $n$ 座岛,编号从 $1$ 到 $n$,每座岛都有自己的独一无二的重要度,按照重要度可 以将这 $n$ 座岛排名,名次用 $1$ 到 $n$ 来表示。某些岛之间由巨大的桥连接,通过桥可以从一个岛到达另一个岛。如果从岛 $a$ 出发经过若干座(含 $0$ 座)桥可以到达岛 $b$,则称岛 $a$ 和岛 $b$ 是连通的。现在有两种操作:$B\ x\ y$ 表示在岛 $x$ 与岛 $y$ 之间修建一座新桥。$Q\ x\ k$ 表示询问当前与岛 $x$ 连通的所有岛中第 $k$ 重要的是哪座岛,即所有与岛 $x$ 连通的岛中重要度排名第 $k$ 小的岛是哪座,请你输出那个岛的编号。
输入文件第一行是用空格隔开的两个正整数 $n$ 和 $m$,分别 表示岛的个数以及一开始存在的桥数。接下来的一行是用空格隔开的 $n$ 个数,依次描述从岛 $1$ 到岛 $n$ 的重要度排名。随后的 $m$ 行每行是用空格隔开的两个正整数 $a_i$ 和 $b_i$,表示一开始就存 在一座连接岛 $a_i$ 和岛 $b_i$ 的桥。后面剩下的部分描述操作,该部分的第一行是一个正整数 $q$, 表示一共有 $q$ 个操作,接下来的 $q$ 行依次描述每个操作,操作的格式如上所述,以大写字母 $Q$ 或 $B$ 开始,后面跟两个不超过 $n$ 的正整数,字母与数字以及两个数字之间用空格隔开。
对于每个 $Q\ x\ k$ 操作都要依次输出一行,其中包含一个整数,表示所询问岛屿的编号。如果该岛屿不存在,则输出 $-1$。
5 1 4 3 2 5 1 1 2 7 Q 3 2 Q 2 1 B 2 3 B 1 5 Q 2 1 Q 2 4 Q 2 3
-1 2 5 1 2
对于 20% 的数据 $n\le 1000$,$q\le 1000$。
对于 100% 的数据 $n\le 100000$,$m\le n$,$q\le 300000$。