QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 1024 MB Total points: 100
[0]

# 4222. 题

Statistics

给定长度为 3n、值域为 [0,3] 的整数序列 S=s1s2s3n。你需要首先将 S 中的每个 0 替换为 [1,3] 中的任意一个整数,得到序列 T=t1t2t3n,然后给出 n 个长度为 3 的整数序列 {ai,1,ai,2,ai,3}1in,使得

  • 1in1ai,1<ai,2<ai,33n
  • (i1,j1)(i2,j2)ai1,j1ai2,j2
  • 1in{tai,1,tai,2,tai,3}{1,2,3} 的一个排列且逆序对数为奇数。

认为两个方案本质不同当且仅当序列 T 不同或存在 ai,j1in1j3)不同,求以上操作的本质不同的方案数,对 (109+7) 取模。

输入格式

本题有多组测试数据

输入的第一行包含一个正整数 C 表示测试数据组数。

对于每组测试数据,第一行一个整数 n,接下来一行一个长度为 3n 的字符串描述序列 S

输出格式

对于每组测试数据,输出一行一个整数表示方案数对 (109+7) 取模的结果。

样例数据

样例 1 输入

5
1
123
1
100
1
000
2
321321
2
000001

样例 1 输出

0
1
3
6
60

样例 1 解释

前三组测试数据中 n=1,故 {a1,1,a1,2,a1,3}={1,2,3}

对于第一组测试数据,只能有 T=123,而 {1,2,3} 的逆序对数为 0 不合法,故不存在方案。

对于第二组测试数据,T=123 不合法,而 T=132{1,3,2} 的逆序对数为 1 合法,故存在一个方案。

对于第三组测试数据,取 T=132T=213T=321 可以得到三个合法方案。

对于第四组测试数据,T=321321,有如下六种方案:

  • {a1,1,a1,2,a1,3}={1,2,3}{a2,1,a2,2,a2,3}={4,5,6}
  • {a1,1,a1,2,a1,3}={4,5,6}{a2,1,a2,2,a2,3}={1,2,3}
  • {a1,1,a1,2,a1,3}={1,2,6}{a2,1,a2,2,a2,3}={3,4,5}
  • {a1,1,a1,2,a1,3}={3,4,5}{a2,1,a2,2,a2,3}={1,2,6}
  • {a1,1,a1,2,a1,3}={1,5,6}{a2,1,a2,2,a2,3}={2,3,4}
  • {a1,1,a1,2,a1,3}={2,3,4}{a2,1,a2,2,a2,3}={1,5,6}

样例 2

见下发文件。

该组样例中五组数据的 n 分别为 3,5,8,12,17

样例 3

见下发文件。

该组样例满足特殊性质 A,五组数据的 n 分别为 2,4,7,15,19

子任务

对于所有测试数据,1C51n19,字符串 S 的长度为 3n 且仅由 0,1,2,3 构成。

测试点编号 n 特殊性质
1 1
2 2
3 3
4 5 A
5 7
6 10
7 13 A
8 16
9 18
10 19

特殊性质 A:字符串 S 由全 0 的字符串构成。

提示

请注意程序的空间消耗。