【MX-S2-T4】换
题目描述
给定 $n,V$ 和一个长为 $m$ 的序列 $(p_1,q_1),(p_2,q_2),\dots,(p_m,q_m)$。
请求出有多少长度为 $n$ 的正整数序列 $a$,其所有元素 $a_i$ 满足 $1\le a_i\le V$,将其按 $k=1,2,\dots,m$ 依次执行如下操作后,$a$ 不降:
- 若 $a_{p_k}>a_{q_k}$,则交换 $a_{p_k}$ 与 $a_{q_k}$ 的值。
答案对 $10^9+7$ 取模。
输入输出格式
输入格式
第一行三个整数 $n,V,m$。
接下来 $m$ 行,每行两个整数 $p_k,q_k$。
输出格式
一行一个整数,表示答案对 $10^9+7$ 取模后的结果。
输入输出样例
输入样例 #1
3 3 5
3 2
1 3
1 2
2 3
2 1
输出样例 #1
12
输入样例 #2
8 900000754 20
5 5
1 2
3 2
1 8
4 8
5 8
3 4
3 7
5 7
3 4
6 8
1 5
7 8
7 8
5 7
1 8
3 8
3 8
5 6
3 8
输出样例 #2
508510094
说明
**【样例解释 \#1】**
对于第一组样例,有以下 $12$ 种符合条件的序列:
$\{1,1,1\}$,$\{1,1,2\}$,$\{1,1,3\}$,$\{1,2,1\}$,$\{1,3,1\}$,$\{2,1,1\}$,$\{2,2,2\}$,$\{2,2,3\}$,$\{2,3,2\}$,$\{3,1,1\}$,$\{3,2,2\}$,$\{3,3,3\}$。
**【数据范围】**
**本题采用捆绑测试。**
- Subtask 0(8 pts):$n\le6$,$V\le 8$,$m \le 50$。
- Subtask 1(31 pts):$n \le 8$。
- Subtask 2(37 pts):$n \le 15$。
- Subtask 3(24 pts):无特殊限制。
对于所有测试数据,$1\le n\le 18$,$1\le V\le 10^9$,$1\le m\le 500$,$1\leq p_k,q_k\leq n$,注意不保证 $p_k$ 和 $q_k$ 的大小关系,且数据可能存在 $p_k=q_k$。