#P11502. [2022省队模拟]小F与游戏

[2022省队模拟]小F与游戏

题目背景

小 F 喜欢打游戏,他梦想着一天能够发♂财。

题目描述

一天他发现一个游戏机,里面有无数个球,11 号球内有奖券,拿到奖券就可以发♂财。

游戏机有四个按钮,游戏机内部有两个序列 aa bb,四种按钮的作用分别是:

1:若这是第 ii 次按动 1 或者 2 按钮,则将球 ii 放入 aa 序列的前端。

2:若这是第 ii 次按动 1 或者 2 按钮,则将球 ii 放入 aa 序列的末端。

3:将 aa 序列开头的球取出,并放入 bb 序列末尾。

4:将 aa 序列末尾的球取出,并放入 bb 序列末尾。

游戏机很特别,所以只要按动 3 或者 4 号按钮, 1 或 2 号按钮将永远消失。

小 F 需要恰好按动 nn 次 3 或者 4 号按钮,得到长度为 nnbb 序列。

此时小 F 可以拿到 bb 序列第 kk 个位置的球,当然,作为游戏高手,小 F 可以轻松的发♂财

小 F 会给你 nn kk 问有多少个不同的合法 bb 序列可以使它发♂财。

bb 序列为合法的,当且仅当可以由上述操作生成。

由于答案很大,小 F 会给你一个数 modmod ,你只需要输出答案对 modmod 取余数即可。

输入格式(game.in)

输入仅一行三个数表示 n,k,modn,k,mod

输出格式(game.out)

输出仅一行一个数,表示答案。

样例输入 #1

2 1 998244353

样例输出 #1

1

样例解释1

合法的 bb 序列为{1,2},一种合法的生成方式是{1,2,3,3}

样例输入 #2

3 2 998244353

样例输出 #2

2

样例解释2:

合法的 bb 序列为{2,1,3},{3,1,2}

分别对应可能的生成方式是{2,1,2,3,3,3},{2,1,2,4,4,3}

样例输入 #3

10 5 998244353

样例输出 #3

6864

样例 #4,#5

见下发文件

数据说明与提示

对于100%的数据,保证 108mod2×10910^8\le mod \le 2\times 10^9 是质数,kn5×105 k \le n\le 5\times10^5

测试点编号 nn 特殊性质
121 \sim 2 kn10k\le n\le 10 无限制
353 \sim 5 无限制 k=1k=1
676 \sim 7 kn500k\le n\le 500 k=nk=n
8108 \sim 10 无限制
111311 \sim 13 kn3000k\le n\le 3000 k=nk=n
141614 \sim 16 无限制
172517 \sim 25 无限制

小 Z 与函数(function)</c