题库练习 [Cnoi2020] 线形生物
← 上一题 下一题 →

A7140 | [Cnoi2020] 线形生物

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

## 题目背景

> 为了能够在冥界过上这种愉快的生活而不是被判入地狱,人类们摒弃了自行结束生命的做法,拼尽全力地生活着。如此看来,人类似乎也显得有些积极与可爱了呢。 (射命丸 文)

线形生物沿着一维的阶梯向着冥界单向地前行着。

照这样的话,它只需要一级一级地,走 $n$ 步就能够到达白玉楼。

但 Cirno 觉得这样太单调了,于是,一维的壁垒被打破,链状的道路生出了花椰菜状的枝桠。

## 题目描述

线形生物要从 $1$ 号台阶走到 $n+1$ 号台阶。

最开始,$1,2,3,\ldots,n$ 号台阶都有一条连向下一台阶的有向边 $i\rightarrow i+1$。

之后 Cirno 加入了 $m$ 条**返祖边** $u_i \rightarrow v_i (u_i \ge v_i)$,它们构成了一个**返祖图**。

线形生物每步会 **等概率地** 选取当前台阶的一条出边并走向对应的台阶。

当走到 $n+1$ 号台阶时,线形生物就会停止行走。

同时,Cirno 会统计线性生物总共走的步数,记作 $\delta$。

Cirno 想知道 $E(\delta)$(即 $\delta$ 的**数学期望**)对 $998244353$ 取模后的结果。

输入格式

第一行三个整数 $id$,$n$,$m$。

以下 $m$ 行,每行两个整数 $u_i$,$v_i$。

$id$ 表示 subtask 编号,其它字母含义同上文。

输出格式

一行,一个整数 $E(\delta)$,字母含义同上文。

输入输出样例

输入 #1
1 5 5
1 1
2 2
3 3
4 4
5 5
输出 #1
10
输入 #2
2 5 5
1 1
2 1
3 2
4 3
5 4
输出 #2
30
输入 #3
3 5 5
1 1
2 1
3 1
4 1
5 1
输出 #3
62
输入 #4
4 5 5
1 1
3 1
4 2
5 1
5 5
输出 #4
35
C++ 编辑器
输入
输出