P1007:杭电/2025-6/1006 缺失的子序列
题目描述
定义一个长度为 n 的排列 p1,p2,…,pn 是好的,当且仅当排列中不存在一组 1≤i1<i2<i3<i4≤n,使得 pi3<pi1<pi4<pi2 或 pi2<pi4<pi1<pi3。
cats 有 n 个集合 S1,S2,…,Sn,其中每个集合 Si 都是 {1,2,…,n} 的子集。现在,cats 想知道有多少长度为 n 的好的排列 p1,p2,…,pn,使得对于任意的 1≤i≤n,都有 pi∈Si。由于答案可能很大,你只需要输出答案对 109+7 取模的结果。
输入输出格式
输入
第一行包含一个整数 T (1≤T≤1000),表示一共有 T 组测试数据。
对于每组测试数据:
第一行为一个整数 n (1≤n≤100),表示排列的长度。
接下来 n 行,每行为一个长度为 n 的 01 字符串,表示第 i 个集合 Si。其中第 i 行第 j 个字符为 0 代表 j∈/Si,第 i 行第 j 个字符为 1 代表 j∈Si。
保证所有测试数据的 n3 之和不超过 5⋅106。
输出
对于每组测试数据,输出一行,包含一个整数,表示满足条件的排列个数对 109+7 取模的结果。
样例
4
1
1
4
1111
1111
1111
1111
5
11111
10001
10101
10001
11111
13
1111110111111
1111111111111
0111110101111
1111111111011
1111110011111
1111111111111
1011110111011
1111100011111
1111101111111
1110111111111
1100111111111
1111110111011
1111101111111
1
22
2
4045764
数据范围
- 1≤T≤1000
- 1≤n≤100
- ∑n3≤5⋅106