#P1610. 颜色翻转游戏

颜色翻转游戏

题目描述

Alice 和 Bob 正在玩一款游戏,给定一个有向图,每个点初始有一个颜色(黑或白)。

双方轮流进行操作,Alice 先手,每次操作选定一个节点,将所有从该点开始,能到达的点(包括自身)颜色翻转。如果某次操作后所有节点都变为白色,则进行该次操作的人胜利。

假如双方都采用最优策略使得自己胜利,或者如果自己无法胜利,使得对方无法胜利。

给你节点的初始状态,请你求出最终的胜者,亦或者,没有胜者。


定义点 uu 能到达点 vv,当且仅当存在数列 (a1,a2,a3,,ak)(a_1,a_2,a_3,\cdots,a_k),其中 k1k \ge 1,使得 i[1,k)\forall i \in [1,k),存在有向边 aiai+1a_i \to a_{i+1},且 a1=ua_1=uak=va_k=v

输入格式

本题有多组测试数据。

第一行一个正整数 TT,代表数据组数。

对于每组测试数据:

第一行两个整数 n,mn, m,代表图的点数,边数。

第二行 nn 个整数,代表每个点开始时的颜色。11 代表黑色,00 代表白色。

接下来 mm 行,每行两个整数 u,vu, v 代表一条从 uvu \to v 的边。

输出格式

对于每组测试数据:

如果最后 Alice 胜利,输出 A

如果最后 Bob 胜利,输出 B

如果双方(在对方的阻止下)都无法胜利,输出 N

您无需输出空格或换行符。

样例

2
2 1
1 0
2 1
3 2
1 0 1
1 2
2 3
AN

说明/提示

数据范围与约定

对于所有测试数据,1n1051 \leq n \leq 10^51m2×1051 \leq m \leq 2 \times 10^51T151 \le T \le 15

样例解释

在第一组数据中,Alice 可以先手对节点 11 进行操作。操作后所有节点变为白色。

在第二组数据中,双方都没有必胜的方法,因此双方会互相拖延对方阻止对方获胜。