#ATagc016f. [AGC016F] Games on DAG

[AGC016F] Games on DAG

题目描述

有一个包含 NN 个顶点、MM 条边的有向图 GG。顶点编号为 11NN。边的编号为 11MM。边 ii 从顶点 xix_i 指向顶点 yiy_i。此外,所有的边都满足 xi<yix_i<y_i,且不存在重边。

现在可以从 GGMM 条边中选择任意一个子集,并从图 GG 中删去这些边,得到一个新的图 GG'。总共有 2M2^M 种不同的 GG'

在每一个 GG' 上,高桥君和青木君玩如下的游戏。首先,在顶点 1122 各放一个棋子。高桥君先手,然后两人轮流进行如下操作:

  • 选择某一个棋子所在的顶点 xix_i 出发的某条边 ii,将该棋子从 xix_i 移动到 yiy_i(如果有两个棋子在 xix_i,则只能移动其中一个)。允许两个棋子停在同一个顶点。

无法进行操作的一方判负。两人都采取最优策略。

2M2^MGG' 中,使高桥君获胜的 GG' 有多少种?请输出这个数量对 109+710^9+7 取模的结果。

输入格式

输入从标准输入中给出,格式如下:

NN MM x1x_1 y1y_1 x2x_2 y2y_2 \dots xMx_M yMy_M

输出格式

输出使高桥君获胜的 GG' 的数量。结果需要对 109+710^9+7 取模。

样例 1

输入

2 1
1 2

输出

1

样例 2

输入

3 3
1 2
1 3
2 3

输出

6

样例 3

输入

4 2
1 3
2 4

输出

2

样例 4

输入

5 10
2 4
3 4
2 5
2 3
1 2
3 5
1 3
1 5
4 5
1 4

输出

816

说明/提示

约束

  • 2N152 \leq N \leq 15
  • 1MN(N1)21 \leq M \leq \frac{N(N-1)}{2}
  • 1xi,yiN1 \leq x_i, y_i \leq N
  • 所有的 (xi,yi)(x_i, y_i) 互不相同。

样例解释 1

GG' 有如下 22 种可能。高桥君获胜用 ○ ,青木君获胜用 × 表示。

样例解释 2

GG' 有如下 88 种可能。

由 ChatGPT 5 翻译