AT_past201912_e SNS のログ
题目描述
你正在运营一个有 $N$ 个用户参与的 SNS(社交网络服务)。这些用户被称为用户 $1,\ \ldots,\ N$,他们可以关注任意数量的其他用户。
然而,由于某些故障,所有关于哪个用户关注了哪个用户的信息都丢失了。幸运的是,所有用户在该 SNS 上进行的操作日志都被保留了下来,你需要根据操作日志来恢复关注关系。
操作日志共有 $Q$ 行,第 $i$ 行($1\leq i\leq Q$)为字符串 $S_i$。每个用户可以进行以下三种操作之一,$S_i$ 表示 SNS 上第 $i$ 次操作:
- 关注:用户 $a$ 关注用户 $b$($a\neq b$)。日志中记为 `1 a b`。
- 全部回关:用户 $a$ 关注所有当前关注用户 $a$ 的用户。日志中记为 `2 a`。
- 关注的关注:对于当前用户 $a$ 关注的每个用户 $x$,用户 $a$ 会关注所有当前被用户 $x$ 关注的用户(不包括用户 $a$ 自己)。日志中记为 `3 a`。
此外,SNS 刚开通时,所有用户都没有关注任何人。如果用户 $a$ 已经关注了用户 $b$,再次关注不会产生任何效果。
请恢复最终的关注关系。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $Q$
> $S_1$
> $S_2$
> $\vdots$
> $S_Q$
输出格式
对于每个 $i,\ j$($1\leq i,\ j\leq N$),如果用户 $i$ 关注用户 $j$,则 $f_{i,j} = $ `Y`,否则 $f_{i,j} = $ `N`。请按如下格式输出:
> $f_{1,1}$$f_{1,2}\ldots f_{1,N}$
> $f_{2,1}$$f_{2,2}\ldots f_{2,N}$
> $\vdots$
> $f_{N,1}$$f_{N,2}\ldots f_{N,N}$
说明/提示
### 注意
在 2019 年 12 月 29 日 05:00 JST 之前,禁止对本题进行任何讨论。如果有讨论,可能会被要求赔偿。
考试结束后可以公开总分和认证等级,但请不要透露解了哪些题等信息。
### 约束条件
- $2 \leq N \leq 100$
- $0 \leq Q \leq 500$
- $S_i$ 为以下三种格式之一的字符串:
- `1 a b`($1\leq a, b\leq N$ 且 $a\neq b$)
- `2 a`($1\leq a\leq N$)
- `3 a`($1\leq a\leq N$)
### 样例解释 1
有 $6$ 个用户,用户 $1,\ldots,6$ 共进行了 $7$ 次操作,日志如下:
- $S_1$:用户 $1$ 关注了用户 $2$。
- $S_2$:用户 $2$ 关注了用户 $3$。
- $S_3$:用户 $3$ 关注了用户 $4$。
- $S_4$:用户 $1$ 关注了用户 $5$。
- $S_5$:用户 $5$ 关注了用户 $6$。
- $S_6$:用户 $1$ 执行了关注的关注操作。此时用户 $1$ 关注了用户 $2, 5$,用户 $2$ 关注了用户 $3$,用户 $5$ 关注了用户 $6$,因此用户 $1$ 还会关注用户 $3, 6$。
- $S_7$:用户 $6$ 执行了全部回关操作。此时关注用户 $6$ 的有用户 $1, 5$,因此用户 $6$ 也会关注这两人。
最终的关注关系如输出样例所示。
由 ChatGPT 4.1 翻译