我觉得可以开两个 version,一个随机,一个不随机(?)
顺便提供一下这道题的 Latex 题面:
### 题目描述
绪萌同人社是一个有趣的组织,该组织结构可以视作一棵 $n$ 个点的树。每个点代表的成员的直接下属即为其所有儿子节点代表的成员。
每个成员都有一个被称作萌点的属性,萌点为一些**质数**的萌元素乘积。例如:猫耳的值是 $2$,弱气的值是 $3$,黄毛的值是 $5$,病娇的值是 $7$,双马尾的值是 $11$。正妹是双份的猫耳,而且有一份弱气,则其萌点为 $2^2 \times 3 = 12$。
现在成员们正关心一个问题:他们希望知道**离自己最近且存在萌元素与自己的萌元素相同的上司是谁**。例如:萌点为 $2, 4, 6, 45$ 的成员都可以被称作存在萌元素与正妹的萌元素相同。
但成员们有时候也会出于某些原因改变自己的萌点。
具体地,他们给你所有成员的初始萌点 $a_1, a_2, \cdots, a_n$。接下来,他们有 $m$ 次操作,分为以下两种:
- `1 u`:他们希望你求出离 $u$ 最近且存在萌元素与 $u$ 的萌元素相同的上司的编号。
- `2 u k`:成员 $u$ 将自己的萌点改变为 $k$,即令 $a_u \leftarrow k$。
### 输入格式
第一行,两个整数 $n, m$;
第二行,$n$ 个整数 $a_1, a_2, \cdots, a_n$;
接下来 $n - 1$ 行,每行两个整数 $u, v$,表示 $u$ 为 $v$ 的上司;
接下来 $m$ 行,每行两个整数 $1, u$ 或三个整数 $2, u, k$。
### 输出格式
对于每个操作 $1$,输出一行,一个整数,若所求编号不存在为 $-1$,否则为所求编号。
### 输入输出样例
#### 输入 #1
```
4 6
10 8 4 3
1 2
2 3
3 4
1 1
1 2
1 3
1 4
2 1 9
1 4
```
#### 输出 #1
```
-1
1
2
-1
1
```
### 数据范围
对于 $20\%$ 的数据,没有操作 $2$;
对于 $50\%$ 的数据,$1 \leq n \leq 100$,操作 $2$ 出现次数不超过 $10$;
对于 $100\%$ 的数据,$1 \leq n \leq 2 \times 10^5$,$1 \leq m \leq 10^5$,$1 \leq a_i, k < 2^{31}$,$1 \leq u, v \leq n$,操作 $2$ 出现次数不超过 $50$,保证给出的上下级关系构成一棵**有根树**。
代码:
```
### 题目描述
绪萌同人社是一个有趣的组织,该组织结构可以视作一棵 $n$ 个点的树。每个点代表的成员的直接下属即为其所有儿子节点代表的成员。
每个成员都有一个被称作萌点的属性,萌点为一些质数的萌元素乘积。例如:猫耳的值是 $2$,弱气的值是 $3$,黄毛的值是 $5$,病娇的值是 $7$,双马尾的值是 $11$。正妹是双份的猫耳,而且有一份弱气,则其萌点为 $2^2 \times 3 = 12$。
现在成员们正关心一个问题:他们希望知道**离自己最近且存在萌元素与自己的萌元素相同的上司是谁**。例如:萌点为 $2, 4, 6, 45$ 的成员都可以被称作存在萌元素与正妹的萌元素相同。
但成员们有时候也会出于某些原因改变自己的萌点。
具体地,他们给你所有成员的初始萌点 $a_1, a_2, \cdots, a_n$。接下来,他们有 $m$ 次操作,分为以下两种:
- `1 u`:他们希望你求出离 $u$ 最近且存在萌元素与 $u$ 的萌元素相同的上司的编号。
- `2 u k`:成员 $u$ 将自己的萌点改变为 $k$,即令 $a_u \leftarrow k$。
### 输入格式
第一行,两个整数 $n, m$;
第二行,$n$ 个整数 $a_1, a_2, \cdots, a_n$;
接下来 $n - 1$ 行,每行两个整数 $u, v$,表示 $u$ 为 $v$ 的上司;
接下来 $m$ 行,每行两个整数 $1, u$ 或三个整数 $2, u, k$。
### 输出格式
对于每个操作 $1$,输出一行,一个整数,若所求编号不存在为 $-1$,否则为所求编号。
### 输入输出样例
#### 输入 #1
```
4 6
10 8 4 3
1 2
2 3
3 4
1 1
1 2
1 3
1 4
2 1 9
1 4
```
#### 输出 #1
```
-1
1
2
-1
1
```
### 数据范围
对于 $20\%$ 的数据,没有操作 $2$;
对于 $50\%$ 的数据,$1 \leq n \leq 100$,操作 $2$ 出现次数不超过 $10$;
对于 $100\%$ 的数据,$1 \leq n \leq 2 \times 10^5$,$1 \leq m \leq 10^5$,$1 \leq a_i, k < 2^{31}$,$1 \leq u, v \leq n$,操作 $2$ 出现次数不超过 $50$,保证给出的上下级关系构成一棵**有根树**。
```
by Leasier @ 2022-11-08 16:55:07
Update:如果要保留数据随机 version 的话,我觉得只需要保证萌点随机,树的形态不必。
by Leasier @ 2022-11-08 17:02:38