题号:NC247497
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
小杜又在玩游戏了!这回他玩的是跑酷游戏!
已知该跑酷地图长为n,有3层,可以理解为一张3×n的地图。令人新奇的是,这张跑酷地图有一些弹射机关。假设玩家现在位置为
)
。
每一秒钟,如果玩家没有踩到机关,玩家可以正常向前移动一格;如果玩家踩到机关,即当前玩家位置上存在一个机关,弹射机关会立即随机触发以下一种状态:
1.
上升:将玩家向上向前弹射一格,即将玩家瞬间移动到
%20%2C%20y%2B1%20))
;
2.
跳跃:将玩家向前弹射两格,即将玩家
瞬间移动到
%20))
;
3.
下降:将玩家向下向前弹射一格,即将玩家
瞬间移动到
%20%2C%20y%2B1%20))
。
如下图所示。
已知小杜起始位于
)
,求小杜最终到达
)
,
)
,
)
的方案数(对998244353取模)。
(如果两种方案被认为是不同的,那么至少存在一个机关,触发的状态不同)
输入描述:
第一行包括
,分别表示跑酷地图的长度和其中包含的机关个数;
接下去m行,每行包括两个正整数
,代表弹射机关的位置在
(保证任意两个机关位置不同)。
输出描述:
输出三行三个正整数,第
行代表最终到达
的方案数,答案对 998244353 取模。