#P12723. [GCJ 2021 Finals] Slide Circuits
[GCJ 2021 Finals] Slide Circuits
题目描述
Gooli 是一家大型公司,在一个丘陵地区拥有 栋建筑。五年前,Gooli 建造了允许员工从一栋建筑滑向另一栋建筑的滑道(单向),由此开启了在建筑间建造滑道的传统。目前共有 条滑道。
Melek 是 Gooli 的交通主管,也是一位热衷解决问题的爱好者。她接到任务要保持滑道的使用乐趣。她想出的办法是禁用部分滑道,使得仅保留电路。一个电路是指由两栋或更多建筑 组成的集合,其中对于每个 ,从建筑 到建筑 恰好有一条启用的滑道,且从建筑 到建筑 恰好有一条启用的滑道。这些建筑的其他任何滑道都不应启用,以防止误导。此时滑道的状态被称为 有趣状态,当且仅当每栋建筑恰好属于一个电路。
Gooli 园区内的滑道用 1 到 的整数编号。Melek 创建了一个滑道控制台,支持两种操作:启用 和 禁用。两种操作都接收三个参数 、 和 ,并对所有满足 且 是 的倍数的滑道 执行操作。启用操作仅在操作执行前所有受影响的滑道处于禁用状态时才有效。类似地,禁用操作仅在操作执行前所有受影响的滑道处于启用状态时才有效。
下图展示了可能的操作序列和状态变化。布局包含 3 栋建筑和 3 条滑道。禁用状态的滑道显示为浅灰色,启用状态的滑道显示为深灰色。
- 初始状态。所有滑道禁用。
- 执行启用操作 ,, 后。
- 执行启用操作 ,, 后。
- 执行禁用操作 ,, 后。
- 执行禁用操作 ,, 后。
- 执行启用操作 ,, 后。
不幸的是,Melek 的猫 Sult 发现了控制台,并开始执行一系列有效的启用和禁用操作。在 Sult 执行每次操作后,Melek 想知道是否可以通过 恰好启用一条当前禁用的滑道 使滑道达到有趣状态。注意 Melek 实际上并不会启用这条滑道。
在上图中可以看到,在第一次、第三次和最后一次操作后,Melek 可以启用唯一禁用的滑道,使状态变为有趣状态。第二次操作后存在两个问题:一是当前没有禁用的滑道,因此 Melek 无法启用任何滑道;此外,状态已经是有趣状态,即使有其他禁用的滑道,启用任何滑道都会导致状态不再有趣。第四次操作后,有两条禁用的滑道,但启用任意一条都无法得到有趣状态。
所有滑道最初都是禁用的,然后 Sult 依次执行操作。在 Sult 的每次操作后,确定 Melek 可以启用哪条禁用的滑道(如果有的话)使滑道达到有趣状态。
输入格式
输入的第一行包含测试用例的数量 。随后是 个测试用例。每个测试用例的第一行包含三个整数 、 和 ,分别表示建筑数量、滑道数量和处理的操作数量。接下来 行,每行包含两个整数 和 ,表示编号为 的滑道从建筑 通向建筑 。最后 行描述操作。第 行包含一个字符 和三个整数 、 和 ,描述第 个操作。 表示操作类型,大写字母 表示启用,大写字母 表示禁用。操作会对所有编号是 的倍数且介于 和 之间的滑道执行。
输出格式
对于每个测试用例,输出一行 Case #x:
,其中 是测试用例编号(从 1 开始), 是一个大写字母 (如果在前 次操作后无法通过启用恰好一条禁用滑道使状态变为有趣状态),否则 是一个整数,表示启用编号为 的滑道可以使前 次操作后的状态变为有趣状态。
输入输出样例 #1
输入 #1
2
3 3 5
1 2
2 3
3 1
E 1 2 1
E 3 3 1
D 1 3 2
D 1 3 3
E 1 2 2
5 8 10
1 5
5 3
4 1
3 2
2 4
2 5
2 1
1 4
E 1 8 2
D 4 8 2
E 3 5 1
E 1 1 3
E 1 1 1
E 5 8 2
D 1 8 3
D 5 8 4
D 4 5 1
E 3 4 1
输出 #1
Case #1: 3 X 2 X 3
Case #2: 3 X 1 1 X X X 3 X 5
说明/提示
样例解释
样例 #1 对应题目描述中的图示案例。
下图展示了样例 #2 的建筑和滑道布局:
每次操作后启用的滑道集合依次为:
数据范围
- 对所有 ,
- 对所有 ,
- 对所有 ,
- 对所有 ,$\left(\mathbf{X}_{i}, \mathbf{Y}_{i}\right) \neq\left(\mathbf{X}_{j}, \mathbf{Y}_{j}\right)$
- 对所有 , 为大写字母 或
- 对所有 ,$1 \leq \mathbf{L}_{j} \leq \mathbf{R}_{j} \leq \mathbf{S}$
- 对所有 ,
- 每个操作都有效
测试集 1(10 分,可见判定)
- 时间限制:10 秒
测试集 2(20 分,隐藏判定)
- 时间限制:120 秒
翻译由 DeepSeek V3 完成