AT_abc350_g [ABC350G] Mediator

题目描述

**请注意特殊的输入格式。同时,请注意内存限制比通常更小。** 有一个包含 $N$ 个顶点 $1,2,\dots,N$ 的无向图,初始时没有任何边。 请对该图处理以下 $Q$ 个查询。 > 1 $u$ $v$ 类型 $1$:在顶点 $u$ 和顶点 $v$ 之间添加一条边。 在添加边之前,$u$ 和 $v$ 属于不同的连通分量(也就是说,图始终是一片森林)。 > 2 $u$ $v$ 类型 $2$:如果存在同时与顶点 $u$ 和顶点 $v$ 相邻的顶点,则输出其编号,否则输出 $0$。 由于图始终是一片森林,可以证明对于该查询的答案是唯一的。 但是,上述查询是经过加密后给出的。 原始查询由 $3$ 个整数 $A,B,C$ 定义,基于此给出加密后的查询 $a,b,c$。 对于类型 $2$ 的查询,第 $k$ 个(从前往后数)查询的答案记为 $X_k$。此外,定义 $k=0$ 时 $X_k=0$。 请根据给定的 $a,b,c$ 按如下方式解密得到 $A,B,C$: - 设在该查询之前已经给出的类型 $2$ 查询的个数为 $l$(不包括当前查询)。此时,按如下方式解密: - $A = 1 + (((a \times (1+X_l)) \bmod 998244353) \bmod 2)$ - $B = 1 + (((b \times (1+X_l)) \bmod 998244353) \bmod N)$ - $C = 1 + (((c \times (1+X_l)) \bmod 998244353) \bmod N)$

输入格式

输入以如下格式从标准输入给出。 其中,$\rm{Query}_i$ 表示第 $i$ 个查询。 > $N$ $Q$ > $\rm{Query}_1$ > $\rm{Query}_2$ > $\vdots$ > $\rm{Query}_Q$

输出格式

设类型 $2$ 的查询总共有 $k$ 个,请输出 $k$ 行。 其中第 $i$ 行输出第 $i$ 个类型 $2$ 查询的答案。

说明/提示

### 限制 - 所有输入均为整数。 - $2 \leq N \leq 10^5$ - $1 \leq Q \leq 10^5$ - $1 \leq u < v \leq N$ - $0 \leq a,b,c < 998244353$ ### 样例解释 1 将所有查询解密后,输入如下: ``` 6 12 2 1 3 1 2 6 1 2 4 1 1 3 2 4 6 2 1 4 1 5 6 1 1 2 2 1 4 2 2 5 2 3 4 2 2 3 ``` 对于该输入,图有 $6$ 个顶点,包含 $12$ 个查询。 - 第 $1$ 个查询为 `2 1 3`。 顶点 $1$ 和顶点 $3$ 没有共同相邻的顶点,输出 $0$。 - 第 $2$ 个查询为 `1 2 6`。 在顶点 $2$ 和顶点 $6$ 之间添加一条边。 - 第 $3$ 个查询为 `1 2 4`。 在顶点 $2$ 和顶点 $4$ 之间添加一条边。 - 第 $4$ 个查询为 `1 1 3`。 在顶点 $1$ 和顶点 $3$ 之间添加一条边。 - 第 $5$ 个查询为 `2 4 6`。 顶点 $4$ 和顶点 $6$ 的共同相邻顶点为顶点 $2$。 - 第 $6$ 个查询为 `2 1 4`。 顶点 $1$ 和顶点 $4$ 没有共同相邻顶点,输出 $0$。 - 第 $7$ 个查询为 `1 5 6`。 在顶点 $5$ 和顶点 $6$ 之间添加一条边。 - 第 $8$ 个查询为 `1 1 2`。 在顶点 $1$ 和顶点 $2$ 之间添加一条边。 - 第 $9$ 个查询为 `2 1 4`。 顶点 $1$ 和顶点 $4$ 的共同相邻顶点为顶点 $2$。 - 第 $10$ 个查询为 `2 2 5`。 顶点 $2$ 和顶点 $5$ 的共同相邻顶点为顶点 $6$。 - 第 $11$ 个查询为 `2 3 4`。 顶点 $3$ 和顶点 $4$ 没有共同相邻顶点,输出 $0$。 - 第 $12$ 个查询为 `2 2 3`。 顶点 $2$ 和顶点 $3$ 的共同相邻顶点为顶点 $1$。 ### 样例解释 2 也可能出现输出为空的情况。 由 ChatGPT 4.1 翻译