luogu#P5064. [Ynoi2014] 等这场战争结束之后

[Ynoi2014] 等这场战争结束之后

题目背景

我真的能变强吗?
【就算你不愿意,我也会逼你变强】
那么承蒙你的一片美意,我就直说了吧

那个嘛...
我才不想变强呢~!
【那这样吧,只要你从战场上活着回来】
【我可以答应你随便一个要求,随便什么都行】
诶?

【结婚什么的当然免谈啦】
你说什么都行的...

点心...
你之前不是在食堂做了点心吗
那么黄油蛋糕你会做吗

我的姐姐...也就是前辈们当中
有一个人每次从战场上活着回来之后
都会一脸陶醉地品尝黄油蛋糕
所以...拜托你了
【偏偏挑这个...】
【没问题,我会让你吃到吐的】
【所以,你一定要活着回来】

题目描述

给你一个图,每个点有点权,最开始没有边。

有一些操作:

  1. 添加一条 xxyy 之间的双向边。
  2. 回到第 xx 次操作后的状态(注意这里的 xx 可以是 00,即回到初始状态)。
  3. 查询 xx 所在联通块能到的点中点权第 yy 小的值,如果不存在,那么输出 1-1

输入格式

第一行输入两个整数 n,mn,m,表示有 nn 个点,mm 个操作。

之后一行 nn 个数,表示每个点的点权。

之后 mm 行,每行有三种可能的操作:

1 x y

2 x

3 x y

意义见题面。

输出格式

对所有 33 的操作,输出一行,包含一个整数,表示答案。

6 10
816801151 223885531 110182151 94271893 319888699 106363731 
1 1 3
1 3 5
1 2 4
1 4 6
1 1 2
3 1 1
2 4
1 1 2
3 1 4
2 7
94271893
223885531

提示

Idea:nzhtl1477,

Solution:nzhtl1477( O(nm/w)O( nm/w ) Time , O(nlogn)O( n\log n ) Space ),ccz181078( O(mnlogn)O( m\sqrt{n\log n} ) Time ,O(nnlogn)O(n\sqrt{n\log n} ) Space ) ,shadowice1984( O(mnlogn)O( m\sqrt{n\log n} ) Time , O(nlogn)O( n\log n ) Space ) , zx2003( O(mn)O( m\sqrt{n} ) Time ,O(n)O( n ) Space )

Code:nzhtl1477( O(nm/w)O( nm/w ) Time , O(nlogn)O( n\log n ) Space ),ccz181078( O(mnlogn)O( m\sqrt{n\log n} ) Time , O(nnlogn)O( n\sqrt{n\log n} ) Space ) ,shadowice1984( O(mnlogn)O( m\sqrt{n\log n} ) Time ,O(nlogn)O( n\log n ) Space ),zx2003( O(mn)O( m\sqrt{n} ) Time ,O(n)O( n ) Space )

Data:nzhtl1477( partially uploaded )

对于 100%100\% 的数据,1n,m1051\leq n,m\leq 10^50ai1090\leq a_i\leq 10^9