#HK4898. 「POI2015 R1」圆桌巫师 Sorcerers of the Round Table

「POI2015 R1」圆桌巫师 Sorcerers of the Round Table

题目描述

题目译自 XXII Olimpiada Informatyczna — I etap Czarnoksiężnicy okrągłego stołu

圆桌巫师们再次举行秘密会议,却又为座位顺序争执不下。会议有 nn 位巫师,每人戴着高度独特的尖帽,高度为 11nn 的不同整数(帽越高,资历越深)。为保持圆桌美观,相邻巫师的帽高差不能超过 pp

此外,巫师之间有些不和:若巫师 aa 不喜欢巫师 bb,则 bb 不能坐在 aa 的右侧。会议主席(帽高为 nn)已选定座位。请你计算其他巫师加入座位的可能排列方式有多少种。

输入格式

输入第一行包含三个整数 n,k,pn, k, p $(1 \leq n \leq 1000000, 0 \leq k \leq 100000, 0 \leq p \leq 3)$,分别表示巫师人数、不喜欢关系的数量和帽高最大差值。

接下来的 kk 行,每行两个整数 ai,bia_{i}, b_{i} (1ai,bin,aibi)(1 \leq a_{i}, b_{i} \leq n, a_{i} \neq b_{i}),表示帽高为 aia_{i} 的巫师不喜欢帽高为 bib_{i} 的巫师。每对有序巫师对最多出现一次。

输出格式

输出一行一个整数,表示排列方式数对 109+710^{9}+7 取模的结果。

5 2 3
1 3
5 4

6

巫师可按以下六种方式围坐圆桌:531245312453142531425214352143534125341252314523145321453214

附加样例

  1. 小型样例,其中存在某巫师无人不喜欢;
  2. n=5,k=0,p=3n=5, k=0, p=3
  3. n=1000000,k=0,p=2n=1000000, k=0, p=2

数据范围与提示

对于 16%16\% 的数据,n5n \leq 5
对于另外 16%16\% 的数据,p2p \leq 2