#CF2218G. 1837~第67场“计数真有趣”
1837~第67场“计数真有趣”
题目描述
有 个人排成一行,位置编号为 。
给你两个整数 、,以及一个长度为 的数组 ()。保证 到 每个数在 中至少出现一次。
对于任意长度为 的数组 (), 表示第 个人的社交尴尬值。坐下规则如下:
- 若 ,第 个人在时刻 坐下。
- 若 ,第 个人会在时刻 开始时坐下,当且仅当同时满足:
- 时刻 之前已经有至少 个人坐下。
- 时刻 之前至少有一个邻居( 或 )已经坐下。
每一刻开始时,所有满足条件的人同时坐下。
表示第 个人必须在时刻 坐下。 请你求出有多少个合法的数组 符合要求,答案对质数 取模。
输入格式
第一行一个整数 ,表示测试用例个数。
每个测试用例:
第一行两个整数 和 。
第二行 个整数 。
输出格式
对于每个测试用例,输出一行一个整数,表示合法数组 的数量对 取模的结果。
7
4 3
0 1 2 0
8 4
0 1 2 3 1 2 0 1
9 5
1 0 1 3 4 3 2 1 0
15 14
3 0 1 2 3 4 5 6 7 8 9 10 11 12 13
5 5
4 3 0 1 2
5 2
0 1 1 1 0
3 2
0 1 1
2
0
1920
138007136
8
0
0
数据规模与约定
所有测试用例的 之和不超过 。
保证 到 每个数在 中至少出现一次。
模数 是质数。
来源:Codeforces Round 1090 (Div. 4) 题目网址:https://codeforces.com/contest/2218/problem/G