2057. cats与填数游戏

时间限制 2000 ms   内存限制 512 MB

cats 有一个有 $n$ 个点,$m$ 条边的没有重边、自环的无向图,每个点有点权 $a_i$。定义两个点相邻,当且仅当两个点之间有边直接连接。cats 需要给每个点填入一个整数 $b_i$,使得这个图满足以下三个条件:

  1. 对于任意的 $1 \leq i \leq n$,都有 $a_i \leq b_i \leq n$。
  2. 对于任意一对相邻的点 $(u,v)$,都有 $|b_u - b_v| \leq 1$。
  3. 对于任意一个点 $u$,若 $b_u \neq 0$,则存在一个与 $u$ 相邻的点 $v$,使得 $b_v < b_u$。

定义一种填数方案的权值为 $\sum_{i = 1}^n b_i$。现在 cats 想知道所有满足要求的填数方案的权值之和。你能帮 cats 求出答案吗?由于答案可能很大,你只需要输出答案对 $10^9+7$ 取模的结果。两种填数方案不同,当且仅当存在 $1 \leq i \leq n$,使得两种填数方案中 $b_i$ 不同。

输入数据

第一行为一个整数 $T(1\le T\le 1000)$ ,表示测试点的总数。

对于每个测试点:

测试点第一行为两个整数 $n,m(1 \leq n \leq 3000$,$0 \leq m \leq 3000$,$m \leq \frac{n \cdot(n-1)}{2})$,表示数字拼图的大小。

测试点第二行为 $n$ 个整数 $a_1,a_2,\cdots,a_n(0 \leq a_i \leq n)$,表示每个点的点权。

接下来 $m$ 行,每行两个整数 $u,v(1 \leq u,v \leq n$,$u \neq v)$,代表一条连接 $(u,v)$ 的无向边。

保证输入的图中没有重边、自环。

保证所有测试点的 $n$ 之和不超过 $3000$,保证所有测试点的 $m$ 之和不超过 $3000$。

输出数据

对于每组测试点,输出一个整数,表示所有填数方案的权值之和对 $10^9+7$ 取模的结果。

样例输入

复制
3
3 3
1 2 3
1 2
2 3
3 1
3 2
1 0 0
1 2
2 3
7 7
0 0 1 0 0 2 0
6 4
1 3
2 5
2 6
7 1
4 5
3 7 \n
 · \n
 · · \n
 · \n
 · \n
 · \n
 · \n
 · · \n
 · \n
 · \n
 · \n
 · · · · · · \n
 · \n
 · \n
 · \n
 · \n
 · \n
 · \n
 · \n

样例输出

复制
0
6
17 \n
 \n
  \n

样例说明

对于第一组样例,不存在满足要求的填数方案,答案为 $0$。
对于第二组样例,有 $3$ 种满足要求的填数方案。三种方案填入的数组 $b$ 分别为 $(1,0,0)$,$(1,0,1)$,$(2,1,0)$。权值分别为 $1,2,3$,所有填数方案的权值之和为 $6$。

提交

请先 登录

© 2024 FAQs Contact About