#P11380. 排队方案(Queueing Arrangements)

0

排队方案(Queueing Arrangements)

排队方案(Queueing Arrangements)

题目描述

小杨所在班级共有 nn 位同学,依次以 1,2,…,n1,2,\dots,n 标号。这 nn 位同学想排成一行队伍,其中有些同学之间关系非常好,在队伍里需要排在相邻的位置。具体来说,有 mm 对这样的关系(mm 是一个非负整数)。当 m≥1m\geq 1 时,第 ii 对关系(1≤i≤m1\leq i\leq m)给出 ai,bia_i,b_i,表示排队时编号为 aia_i 的同学需要排在编号为 bib_i 的同学前面,并且两人在队伍中相邻。

现在小杨想知道总共有多少种排队方式。由于答案可能很大,你只需要求出答案对 109+710^9+7 取模的结果。

输入格式

第一行,两个整数 n,mn,m,分别表示同学们的数量与关系数量。

接下来 mm 行,每行两个整数 ai,bia_i,b_i,表示一对关系。

输出格式

一行,一个整数,表示答案对 109+710^9+7 取模的结果。

样例输入 #1

4 2
1 3
2 4

样例输出 #1

2

样例输入 #2

3 0

样例输出 #2

6

样例输入 #3

3 2
1 2
2 1

样例输出 #3

0

数据范围

对于 20%20\% 的测试数据点,保证 1≤n≤81\leq n\leq 8,0≤m≤100\leq m\leq 10。

对于另外 20%20\% 的测试数据点,保证 1≤n≤1031\leq n\leq 10^3,0≤m≤10\leq m\leq 1。

对于所有测试数据点,保证 1≤n≤2×1051\leq n\leq 2\times 10^5,0≤m≤2×1050\leq m\leq 2\times 10^5。

知识点与难度

本题涉及的知识点从属于 GESP 8级,难度(CF Rating):1500。


测试点分布

Subtask 分值 测试点编号 说明
0 15 1~3 样例
1 25 4~9 小规模 n≤8, m≤10 / 特殊: 含重边、环或分叉冲突
2 30 10~17 中等规模 n≤1000
3 18~25 满规模 n,m≤2×10^5 链合并计数测试

出处:原题链接