#agc016f. [agc016_f]Games on DAG
[agc016_f]Games on DAG
题目描述
有一个有 个顶点和 条边的有向图 。顶点编号为 到 ,边编号为 到 。第 条边是从 指向 的。这里,满足 。并且 中没有重复的边。
考虑在 中选择一组边的子集,并从 中删除这些边,得到另一个图 。总共有 种不同的 。
Alice 和 Bob 在以下游戏中对抗。游戏在 上进行。首先,在顶点 和 上放置两个棋子,一个棋子在每个顶点上。然后,从 Alice 开始,Alice 和 Bob 交替执行以下操作:
- 选择一条边 ,使得顶点 上有放置了棋子,并将棋子移动到顶点 上(如果顶点 上有两个棋子,则只移动一个)。两个棋子可以放在同一个顶点上。
当某个玩家无法执行操作时,该玩家输掉游戏。我们假设两个玩家都会以最佳策略进行游戏。
在 种不同的 中,有多少种会导致 Alice 获胜的情况?将计数结果对 取模。
约束条件
- 所有 都是不同的。
输入
输入从标准输入读取,格式如下:
输出
打印导致 Alice 获胜的 的数量,对 取模。
示例输入 1
2 1
1 2
示例输出 1
1
下图显示了两种可能的 。一个被标记为 ○ 的图导致 Alice 获胜,一个被标记为 × 的图导致 Bob 获胜。
示例输入 2
3 3
1 2
1 3
2 3
示例输出 2
6
下图显示了八种可能的 。
示例输入 3
4 2
1 3
2 4
示例输出 3
2
示例输入 4
5 10
2 4
3 4
2 5
2 3
1 2
3 5
1 3
1 5
4 5
1 4
示例输出 4
816