hack+提供一种可能正确的做法

P2441 角色属性树

我觉得可以开两个 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


|