luogu#P11460. [USACO24DEC] Maximize Minimum Difference P

[USACO24DEC] Maximize Minimum Difference P

题目描述

注意:本题的时间限制为 4 秒,通常限制的 2 倍。

哞!你被给定了一个整数 NN2N20002\le N\le 2000)。考虑 [0,1,2,N1][0,1,2\dots, N-1] 的所有排列 p=[p0,p1,,pN1]p=[p_0,p_1,\dots, p_{N-1}]。令 f(p)=mini=0N2pipi+1f(p)=\min_{i=0}^{N-2}|p_i-p_{i+1}| 表示 pp 中任意两个连续元素之间的最小绝对差值,并令 SS 表示所有达到 f(p)f(p) 最大可能值的 pp 的集合。

你还被给定了 KK0KN0\le K\le N)个限制,形式为 pi=jp_i=j0i,j<N0\le i,j<N)。计算 SS 中满足所有限制的排列数量,对 109+710^9+7 取模。

输入格式

输入的第一行包含 TTNN1TN21041\le TN\le 2\cdot 10^4),表示你需要求解 TT 个独立的测试用例,每个测试用例指定一组不同的限制。

每个测试用例的第一行包含 KK,以下 KK 行,每行包含 iijj。输入保证

相同的 ii 在同一测试用例中不会出现超过一次。 相同的 jj 在同一测试用例中不会出现超过一次。

输出格式

对于每个测试用例输出一行,包含答案模 109+710^9+7 的余数。

3 4
0
1
1 1
2
0 2
2 3
2
0
1
9 11
2
0 5
6 9
3
0 5
6 9
1 0
4
0 5
6 9
1 0
4 7
5
0 5
6 9
1 0
4 7
2 6
6
0 5
6 9
1 0
4 7
2 6
9 3
7
0 5
6 9
1 0
4 7
2 6
9 3
5 2
8
0 5
6 9
1 0
4 7
2 6
9 3
5 2
7 4
9
0 5
6 9
1 0
4 7
2 6
9 3
5 2
7 4
3 1
10
0 5
6 9
1 0
4 7
2 6
9 3
5 2
7 4
3 1
8 10
6
6
1
1
1
1
1
1
1
10 11
0
1
3 8
2
3 8
5 7
3
3 8
5 7
4 2
4
3 8
5 7
4 2
10 6
5
3 8
5 7
4 2
10 6
8 10
6
3 8
5 7
4 2
10 6
8 10
1 9
7
3 8
5 7
4 2
10 6
8 10
1 9
7 5
8
3 8
5 7
4 2
10 6
8 10
1 9
7 5
2 3
9
3 8
5 7
4 2
10 6
8 10
1 9
7 5
2 3
6 0
160
20
8
7
2
1
1
1
1
1
5 987
3
654 321
543 210
432 106
2
654 321
543 210
1
654 321
1
0 493
0
0
538184948
693625420
932738155
251798971

提示

样例 1 解释:

f(p)f(p) 的最大值为 22,且 S={[2,0,3,1],[1,3,0,2]}S=\{[2,0,3,1], [1,3,0,2]\}

样例 2 解释:

p=[5,0,6,1,7,2,9,4,10,3,8]p=[5, 0, 6, 1, 7, 2, 9, 4, 10, 3, 8] 在所有测试用例中都应当被计算在内。

样例 3 解释:

p=[4,9,3,8,2,7,0,5,10,1,6]p=[4, 9, 3, 8, 2, 7, 0, 5, 10, 1, 6] 在所有测试用例中都应当被计算在内。

样例 4 解释:

确保输出答案对 109+710^9+7 取模。

  • 测试点 55N=15N=15
  • 测试点 66N=2000N=2000
  • 测试点 797\sim 9:对于所有测试用例,均存在限制 p0=N/2p_0=\lfloor N/2\rfloor
  • 测试点 101310\sim 13:对于所有测试用例,均存在某个限制 pi=jp_i = j,其中 jj 等于 N/2\lfloor N/2\rfloor
  • 测试点 142014\sim 20:没有额外限制。