#P13797. wangyurzee的树

wangyurzee的树

题目描述

nn 个两两不同的节点,编号为 1,2,,n1,2,\dots,n。你需要在它们之间连接恰好 n1n-1 条无向边,使得整张图成为一棵树。

但是给出了 mm 个限制条件。第 ii 个限制给出一对 (ui,di)(u_i,d_i),表示 节点 uiu_i 的度数不能等于 did_i

节点的度数指与该节点相连的边的条数。

请问满足所有限制条件的生成树方案数有多少?答案对 10000000071000000007 取模。


输入格式

第一行两个整数 n,mn,m,表示节点个数与限制个数。

接下来 mm 行,每行两个整数 ui,diu_i,d_i,表示限制:节点 uiu_i 的度数不能为 did_i


输出格式

输出一行一个整数,表示满足条件的方案数(对 10000000071000000007 取模)。


数据范围与保证

  • 1n1061 \le n \le 10^6
  • 0m170 \le m \le 17
  • 1din11 \le d_i \le n-1
  • 保证不会有两条完全相同的限制(即不存在相同的 (ui,di)(u_i,d_i)
  • 为了方便起见,保证 1uim1 \le u_i \le m(因此被限制的点都在前 mm 个点里),并且显然也有 uinu_i \le n

样例 1

3 1
1 2
2

解释:n=3n=3 时一共有 33 棵不同的树(边集分别为 (1,2),(1,3){(1,2),(1,3)}(1,2),(2,3){(1,2),(2,3)}(1,3),(2,3){(1,3),(2,3)})。其中第二棵里节点 11 的度数是 22,违反“节点 11 的度数不能为 22”,所以合法的只有 22 种。