CF2137G.Cry Me a River
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
存在一个包含 n 个节点和 m 条边的有向无环图。所有节点初始时均为蓝色。
定义“趣味图游戏”(fun graph game)规则如下:
- 初始时,将一枚令牌放置在节点 s 上。
- Cry 和 River 轮流将令牌移动到一个满足“存在从当前节点指向该节点的有向边”的节点上,其中 Cry 先手。
- 若令牌在任一玩家的回合后到达一个无出边的节点,则 Cry 获胜。
- 若令牌在任一玩家的回合后到达一个红色节点,则 River 获胜。
- 特殊规则:若玩家到达一个“既为红色又无出边”的节点,则 River 获胜。
由于该图是有向无环图,可证明游戏一定会在有限回合内结束。
需注意:若起始节点 s 无出边,则 Cry 可立即获胜;若起始节点 s 为红色,则 River 可立即获胜。
你需要处理 q 个如下类型的查询:
- 1 u:将节点 u 的颜色更新为红色。保证执行此更新前,节点 u 为蓝色。
- 2 u:若令牌初始放置在节点 u 上进行“趣味图游戏”,且两名玩家均采用最优策略,Cry 会获胜吗?
输入格式
每组测试包含多组测试用例。第一行输入测试用例的数量 t(1≤t≤104),随后依次描述每组测试用例。
每组测试用例的输入格式如下:
- 第一行:三个整数 n、m、q(2≤n≤2×105,1≤m,q≤2×105)。
- 接下来 m 行:每行包含两个整数 u 和 v(1≤u,v≤n),表示存在一条从 u 指向 v 的有向边。
- 接下来 q 行:每行包含两个整数 x 和 u(1≤x≤2,1≤u≤n),分别表示查询类型和查询所针对的节点。
保证给定的图是有向无环图,且不会重复给出同一条边。同时保证所有测试用例的 n 之和、m 之和、q 之和均不超过 2×105。
输出格式
对于每个类型 2 的查询,若 Cry 获胜则输出 "YES",否则输出 "NO"。字母不区分大小写,例如 "Yes" 、 "no" 均视为有效输出。
输入输出样例
输入#1
1 7 8 10 1 2 1 3 1 4 2 5 3 6 5 7 2 3 3 4 2 1 1 3 1 4 2 1 2 2 2 3 2 4 2 5 2 6 2 7
输出#1
YES NO YES NO NO YES YES YES
说明/提示
下方为样例中的图:

- 初始时所有节点均为蓝色。因此 Cry 不会失败,最终令牌一定会被移至一个无出边的节点。
- 将节点 3 和 4 涂为红色后,在采用最优策略的情况下:从节点 1、3、4 开始游戏时,River 会获胜。若游戏从节点 1 开始,一种可能的进程如下:
- Cry 将令牌移至节点 2。
- River 将令牌移至节点 3(该节点为红色),因此 River 获胜。
可以证明,对于其他所有节点,采用最优策略时 Cry 仍会获胜。
输入解题思路,AI测评打分。不知道怎么写?