#P15253. [NOSOI R1] Raining Mex

[NOSOI R1] Raining Mex

题目背景

Mex 不知道,但它在哭泣。

题目描述

给定一个 nn 个点 mm 条边的无向连通图。每个点 ii 有一个权值 wiw_i

定义一条从 xxyy 的路径的权值如下:

  1. 令路径上经过的所有点的权值构成一个可重集合 SS(注意:即使路径重复经过同一个点,该点的权值在 SS 中只出现一次;但由于不同点可能具有相同权值,因此 SS 中可能包含重复元素)。
  2. 考虑 SS 的所有子集(包括空集),每个子集的权值之和构成一个集合 TT。例如 S={1,2,3}S=\{1,2,3\}T={0,1,2,3,4,5,6}T=\{0,1,2,3,4,5,6\}
  3. 该路径的权值定义为集合 TTmex\text{mex}。一个集合的 mex\text{mex} 是指该集合中未出现的最小自然数。例如 mex{0,1,2,4}=3\operatorname{mex}\{0,1,2,4\}=3

你需要处理 qq 个查询。每个查询给定两个整数 x,yx, y。表示一次查询的起点和终点。

首先,你需要将原图的每条边定向,将原无向图转为有向图。对于一种定向方案,如果存在从 xxyy 的路径(路径允许重复经过顶点和边),则定义该方案的权值为所有从 xxyy 的路径的权值的最大值,你需要输出所有定向方案中权值的最大值。

注意:对于每组查询,边定向是独立重新进行的,即每次查询时你可以自由选择边的方向以最大化权值。

输入格式

  • 第一行包含两个整数 n,m,sidn,m,sid。分别表示点数,边数,子任务编号。
  • 第二行包含 nn 个整数 w1,w2,,wnw_1, w_2, \dots, w_n,表示每个点的权值。
  • 接下来 mm 行,每行包含两个整数 u,vu, v,表示一条连接点 uu 和点 vv 的边。
  • 下一行包含一个整数 qq,表示查询数量。
  • 接下来 qq 行,每行包含两个整数 x,yx,y,表示一个查询。

输出格式

对于每个查询,输出一行一个整数,表示所有定向方案中权值的最大值。

5 6 0
1 1 8 4 3
1 2
1 4
2 4
2 3
3 4
4 5
3
1 5
1 4
2 4
18
3
3
见 ex_mex1.in/ans
这个样例满足 sub2 的约束条件

见 ex_mex2.in/ans
这个样例满足 sub3 的约束条件

见 ex_mex3.in/ans
这个样例满足 sub4 的约束条件

提示

数据范围

本题采用捆绑测试

sid\text{sid} ptspts nn mm qq ww 特殊性质
11 55 5\leq5 10\leq 10 5\leq 5 10\leq 10
22 1010 100\leq100 <100<100 100\leq 100 AA
33 1515 103\leq 10^3 <103<10^3 103\leq10^3 106\leq 10^6
44 1010 104\leq 10^4 103\leq 10^3 106\leq10^6
55 105\leq 10^5 106\leq 10^6 105\leq 10^5 1\leq 1
66 1515 105\leq10^5 106\leq10^6 105\leq 10^5 BB
77 105\leq 10^5 106\leq 10^6 106\leq 10^6
88 2020 2×105\leq 2\times10^5 2×105\leq2\times 10^5

特殊性质 AAn=m+1n=m+1

特殊性质 BB:所有输入的 wiw_inn 的排列。

对于所有测试数据保证:

  • 2n2×1052 \le n \le 2\times 10^5
  • n1m106n-1 \le m \le 10^6
  • 1q2×1051 \le q \le 2\times10^5
  • 1u,v,x,yn1 \le u, v, x, y \le n
  • 1wi1061 \le w_i \le 10^6

提示

  • 图的连通性保证初始无向图是连通的,可能存在重边,自环。
  • 本题输入数据较大,建议使用较快的读入方式。