A1773 | Acgo社区
时间限制3s
内存限制512MB
通过 / 提交0/0
题目描述
时间限制:3000ms
内存限制:512MB
在 $\textbf{Acgo}$ 社区的每名用户可以关注或者取消关注其他用户。假设 $\textbf{Acgo}$ 社区现在有从 $1$ 到 $N$ 共 $N$ 名用户,自 $\textbf{Acgo}$ 推出以来,已经进行了 $Q$ 次操作。 对于第 $i(1 \le i \le Q)$ 次操作由三个整数 $C_i$,$A_i$ 和 $B_i$ 表示,含义如下:
- 如果 $C_i = 1$:表示用户 $A_i$ 关注了用户 $B_i$。 如果用户 $A_i$ 已经关注了 $B_i$,则不做任何操作。
- 如果 $C_i = 2$:表示用户 $A_i$ 取消关注了用户 $B_i$。 如果用户 $A_i$ 没有关注用户 $B_i$,则不会做任何操作。
- 如果 $C_i = 3$:需要你判断用户 $A_i$ 和 $B_i$ 此时是否互相关注。即如果用户 $A_i$ 正在关注 $B_i$,并且用户 $B_i$ 正在关注用户 $A_i$ 输出 $\tt{Yes}$ 否则输出 $\tt{No}$。
一开始时没有任何用户关注任何其他用户。
内存限制:512MB
在 $\textbf{Acgo}$ 社区的每名用户可以关注或者取消关注其他用户。假设 $\textbf{Acgo}$ 社区现在有从 $1$ 到 $N$ 共 $N$ 名用户,自 $\textbf{Acgo}$ 推出以来,已经进行了 $Q$ 次操作。 对于第 $i(1 \le i \le Q)$ 次操作由三个整数 $C_i$,$A_i$ 和 $B_i$ 表示,含义如下:
- 如果 $C_i = 1$:表示用户 $A_i$ 关注了用户 $B_i$。 如果用户 $A_i$ 已经关注了 $B_i$,则不做任何操作。
- 如果 $C_i = 2$:表示用户 $A_i$ 取消关注了用户 $B_i$。 如果用户 $A_i$ 没有关注用户 $B_i$,则不会做任何操作。
- 如果 $C_i = 3$:需要你判断用户 $A_i$ 和 $B_i$ 此时是否互相关注。即如果用户 $A_i$ 正在关注 $B_i$,并且用户 $B_i$ 正在关注用户 $A_i$ 输出 $\tt{Yes}$ 否则输出 $\tt{No}$。
一开始时没有任何用户关注任何其他用户。
输入格式
每个测试点包含多个测试用例。第一行为测试用例的总数 $t(1 \le t \le 10)$。
每个测试用例的第一行为社区的总人数 $N(1 \le N \le 10^9)$ 和总操作次数 $Q(1 \le Q \le 2 \times 10^5)$。
每个测试用例的第 $2$ 行到 $Q + 1$ 行,每行包含三个整数 $C_i(1, 2, 3)$,$A_i(1 \le A_i \le N)$ 和 $B_i(1 \le B_i \le N)$,含义如题面所陈述。
题目保证所有测试用例的 $Q$ 的总和不超过 $4 \times 10^5$。
每个测试用例的第一行为社区的总人数 $N(1 \le N \le 10^9)$ 和总操作次数 $Q(1 \le Q \le 2 \times 10^5)$。
每个测试用例的第 $2$ 行到 $Q + 1$ 行,每行包含三个整数 $C_i(1, 2, 3)$,$A_i(1 \le A_i \le N)$ 和 $B_i(1 \le B_i \le N)$,含义如题面所陈述。
题目保证所有测试用例的 $Q$ 的总和不超过 $4 \times 10^5$。
输出格式
对于每个测试用例的每个 $C_i = 3$ 的操作,若此时用户$A_i$ 和 $B_i$ 互相关注,输出 $\tt{Yes}$ 否则输出 $\tt{No}$。
你可以输出 $\tt{Yes}$ 和 $\tt{No}$ 的任意大小写形式(例如,字符串 $\tt{yEs}$、$\tt{yes}$、$\tt{Yes}$ 和 $\tt{YES}$ 都会被视为正确答案)。
你可以输出 $\tt{Yes}$ 和 $\tt{No}$ 的任意大小写形式(例如,字符串 $\tt{yEs}$、$\tt{yes}$、$\tt{Yes}$ 和 $\tt{YES}$ 都会被视为正确答案)。
输入输出样例
输入 #1
1 3 9 1 1 2 3 1 2 1 2 1 3 1 2 1 2 3 1 3 2 3 1 3 2 1 2 3 1 2
输出 #1
No Yes No No
对于第一个测试用例,$\bf{Acgo}$ 有三个用户,九个操作如下。
- 用户 $1$ 关注了用户 $2$。没有其他用户关注或被其他用户关注。
- 判断用户 $1$ 和 $2$ 是否互相关注。用户 $1$ 关注了用户 $2$,但用户 $2$ 没有关注用户 $1$,所以输出 $\tt{No}$。
- 用户 $2$ 关注用户 $1$。
- 判断用户 $1$ 和 $2$ 是否互相关注。用户 $1$ 关注了用户 $2$,用户 $2$ 关注了用户 $1$,因此输出 $\tt{Yes}$。
- 用户 $2$ 关注用户 $3$。
- 用户 $3$ 关注用户 $2$。
- 判断用户 $1$ 和 $3$ 是否互相关注。用户 $1$ 没有关注用户 $3$,用户 $3$ 也没有关注用户 $1$,因此输出 $\tt{No}$。
- 用户 $1$ 取消关注用户 $2$。
- 判断用户 $1$ 和 $2$ 是否互相关注。用户 $2$ 关注了用户 $1$,但用户 $1$ 没有关注用户 $2$,因此输出 $\tt{No}$。
- 用户 $1$ 关注了用户 $2$。没有其他用户关注或被其他用户关注。
- 判断用户 $1$ 和 $2$ 是否互相关注。用户 $1$ 关注了用户 $2$,但用户 $2$ 没有关注用户 $1$,所以输出 $\tt{No}$。
- 用户 $2$ 关注用户 $1$。
- 判断用户 $1$ 和 $2$ 是否互相关注。用户 $1$ 关注了用户 $2$,用户 $2$ 关注了用户 $1$,因此输出 $\tt{Yes}$。
- 用户 $2$ 关注用户 $3$。
- 用户 $3$ 关注用户 $2$。
- 判断用户 $1$ 和 $3$ 是否互相关注。用户 $1$ 没有关注用户 $3$,用户 $3$ 也没有关注用户 $1$,因此输出 $\tt{No}$。
- 用户 $1$ 取消关注用户 $2$。
- 判断用户 $1$ 和 $2$ 是否互相关注。用户 $2$ 关注了用户 $1$,但用户 $1$ 没有关注用户 $2$,因此输出 $\tt{No}$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?