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$。