#P5807. 【模板】BEST 定理 | Which Dreamed It

【模板】BEST 定理 | Which Dreamed It

题目描述

nn 个房间,每个房间有若干把钥匙能够打开特定房间的门。

最初你在房间 11。每当你到达一个房间,你可以选择该房间的一把钥匙,前往该钥匙对应的房间,并将该钥匙丢到垃圾桶中。

你希望最终回到房间 11,且垃圾桶中有所有的钥匙。

你需要求出方案数,答案对 106+310^6 + 3 取模。两组方案不同,当且仅当使用钥匙的顺序不同。

注意,每把钥匙都是不同的。

原 BZOJ3659。

输入格式

本题有多组数据。

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

对于每组数据:

第一行一个整数 nn

接下来 nn 行,第 ii 行描述房间 ii

首先一个数 ss,表示这个房间的钥匙数目,接下来 ss 个数,分别描述每把钥匙能够打开的房间的门。

输出格式

对于每组数据,一行一个整数,表示答案对 106+310^6+3 取模后的值。

2
1
0
2
1 1
1 2
1
0

提示

【样例说明】

在第一组样例中,没有钥匙,则方案数为 11

在第二组样例中,你不可能使用第二个房间的钥匙,所以方案数为 00

【数据范围】

对于 50%50\% 的数据,n4n \le 4s30\sum s \le 30

对于 100%100\% 的数据,1T151 \le T \le 151n1001 \le n \le 1000s2×1050 \le \sum s \le 2 \times 10^5

2021/5/14 加强 by SSerxhs&滑大稽