【题目描述】
给定一个有向图 G,它由 N 个顶点和 M 条边组成。第 i 条边从 ui 指向 vi。
G 的欧拉回路是由顶点序列 (v0,…,vM−1) 与边序列 (e0,…,eM−1) 组成的二元组,满足以下条件:
- (e0,…,eM−1) 是 (0,…,M−1) 的一个排列。
- 对于 0≤i<M−1,边 ei 从 vi 指向 vi+1。边 eM−1 从 vM−1 指向 v0。
注意,欧拉回路经过任意循环移位后仍然是欧拉回路。
求 G 的欧拉回路数量,其中可以通过循环移位互相得到的欧拉回路视为相同(换言之,求满足 e0=0 的欧拉回路数量),并将结果对 998244353 取模。
【输入】
文本
$N$ $M$
$u_0$ $v_0$
$\vdots$
$u_{M-1}$ $v_{M-1}$
【输出】
输出答案对 998244353 取模的结果。
【输入样例】
文本
3 6
0 1
0 1
1 2
1 2
2 0
2 0
【输出样例】
【输入样例2】
文本
4 10
0 1
0 2
1 0
1 3
1 3
2 1
2 3
3 0
3 1
3 2
【输出样例2】
【输入样例3】
【输出样例3】
【输入样例4】
【输出样例4】
【数据范围】
- 1≤N≤500
- 1≤M≤200000
- 0≤ui,vi<N
【来源】
Library Checker(yosupo06) counting_eulerian_circuits