题号:NC233503
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
Alice 和 Bob 在玩游戏。
在他们面前有一张

个点,

条边的有向无环图,每个点有若干芯片,数量为

。Alice 和 Bob 轮流操作,Alice 先手。定义玩家的一次操作为将图上的某一顶点的一个芯片根据有向边移到另外一个顶点上。每人每次只能操作一次。如果一个人不能操作,那么他输掉游戏。
在游戏开始后,每一秒在图上都会发生如下的操作:
1. 在

范围内等概率选取一个整数

。
2. 如果

,那么在

顶点放置一个芯片,这一秒操作结束。
3. 如果

,那么 Alice 和 Bob 开始游戏,游戏结束后所有操作停止。
保证 Alice 和 Bob 都绝对聪明。
现在请你求出 Alice 赢的概率。对

取模。
即若概率为最简分数

(保证

),你只需要输出

使得

,可以证明这样的

是唯一的。
输入描述:
第一行两个整数
,表示有向无环图的顶点个数与边数。
接下来
行,每行两个数
,表示从
到
有一条有向边。
。
输出描述:
仅一行,表示 Alice 赢的概率。对
取模。
备注:
原题链接:https://codeforces.com/contest/1464/problem/E