luogu#P7357. 「PMOI-1」中位数
「PMOI-1」中位数
题目描述
给定一棵以 为根的包含 个节点的有根树。第 个节点有点权 。
定义函数 表示从 到 经过的所有节点的点权的可重集的中位数。
请注意,本题中的中位数的定义与数学中的定义略有不同:这里一个长度为 的序列的中位数定义为这个序列第 小的数。
定义函数 表示从 到 的路径是否完全覆盖了从 到 的路径。如果完全覆盖,则 ,否则 。
你需要依次处理 次操作,按照以下格式给出:
1 u
:表示一次操作,需要你将点 的点权对 异或;
2 u v
:表示一次询问,需要你求出 $\max\limits_{1\le i\le n,1\le j\le n}\{\text{cover}(i,j,u,v)f(i,j)\}$。
对于第二类操作,保证每次询问均满足 不是 的祖先且 不是 的祖先,且 。
你需要对于每个第二类操作,输出对应的值。
输入格式
第一行两个正数 和 ,分别表示树的节点数与询问次数。
第二行 个整数,第 个数表示第 个节点的点权 。
下面 行,每行两个整数 ,描述一条连接 与 的边。
下面 行,每行先输入一个整数 ,表示本次是是操作还是询问。 若 ,则这是一次操作,且接下来会输入一个整数 ;若 ,则这是一次询问,且接下来会输入两个整数 。其具体意义见【题目描述】。
输出格式
对于每次询问输出一行,即对应询问的答案。
8 3
4 2 3 4 2 1 4 3
1 2
1 3
2 4
2 5
3 6
6 7
6 8
2 4 8
1 3
2 2 3
3
4
提示
【样例解释】
第一次是询问。显然,只有 满足 。此时 。
第二次是操作。将 号节点的点权改为了 。
第三次是询问。当 时, 且 。不难发现,对于其他所有满足 的节点对 ,均没有 。
【数据范围】
- Subtask1(8pts):;
- Subtask2(12pts):;
- Subtask3(16pts):;
- Subtask4(10pts):保证树的形态随机生成;
- Subtask5(12pts):保证没有 操作;
- Subtask6(12pts):保证每次询问的 都是叶子节点;
- Subtask7(30pts):无特殊限制。
Subtask4 的随机方式为 :随机生成一个的排列 ,对于 , 向 中等概率随机的一个点连边。
对于 的数据满足,,保证每次询问均满足 不是 的祖先且 不是 的祖先,且 。