SP13808 COLOR_CC - Colors
题目描述
给定一个具有 $N$ 个节点的二分图,你需要以一种方式为每个节点着色,使得相邻的两个节点不会有相同的颜色。每个节点可以从一组颜色中选择颜色。请输出可能的着色方式数量。
你将获得一个对称矩阵,即 `matrix[i][j]` 始终等于 `matrix[j][i]`。如果 `matrix[i][j] == 'Y'`,则节点 $i,j$ 由一条边连接,如果 `matrix[i][j] == 'N'`,则节点 $i,j$ 不连接。
输入格式
第一行一个整数 $T$,表示输入测试用例的数量。
对于每个测试用例:
第一行一个整数 $N$,表示图中节点数量。
接下来 $N$ 行,每行 $N$ 个字符,第 $i$ 行的第 $j$ 个字符表示 `matrix[i][j]`。
接下来 $N$ 行,第 $i$ 行首先是一个整数 $x_i$,表示第 $i$ 个节点可以选择的总颜色数,接下来 $x_i$ 个整数,表示颜色。
输出格式
输出可能的着色方式数。
说明/提示
$T \le 20,0 \le N \le 13$。
保证矩阵的每个元素都是 `Y` 或 `N`。
$\forall i \in [1,n],0 \le x_i \le 8$。颜色编号将小于 $10^5$。