给定一个 个点 条边的无向连通图。每个点 有一个权值 。
定义一条从 到 的路径的权值如下:
- 令路径上经过的所有点的权值构成一个可重集合 (注意:即使路径重复经过同一个点,该点的权值在 中只出现一次;但由于不同点可能具有相同权值,因此 中可能包含重复元素)。
- 考虑 的所有子集(包括空集),每个子集的权值之和构成一个集合 。例如 则 。
- 该路径的权值定义为集合 的 。一个集合的 是指该集合中未出现的最小自然数。例如 。
你需要处理 个查询。每个查询给定两个整数 。表示一次查询的起点和终点。
首先,你需要将原图的每条边定向,将原无向图转为有向图。对于一种定向方案,如果存在从 到 的路径(路径允许重复经过顶点和边),则定义该方案的权值为所有从 到 的路径的权值的最大值,你需要输出所有定向方案中权值的最大值。
注意:对于每组查询,边定向是独立重新进行的,即每次查询时你可以自由选择边的方向以最大化权值。