最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

信息学奥赛题库- 有趣的数列

C++ 少儿编程 1190浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

【题目描述】

我们称一个长度为 $2n$ 的数列是有趣的,当且仅当该数列满足以下三个条件:

1、它是从 $1$ 到 $2n$ 共 $2n$ 个整数的一个排列 ${a_i}$;

2、所有的奇数项满足 $a_1lt a_3lt cdots lt a_{2n-1}$ ,所有的偶数项满足 $a_2lt a_4lt cdots lt a_{2n}$;

3、任意相邻的两项 $a_{2i-1}$与 $a_{2i}(1le ile n)$ 满足奇数项小于偶数项,即:$a_{2i-1}lt a_{2i}$ 。

任务是:对于给定的 $n$,请求出有多少个不同的长度为 $2n$ 的有趣的数列。因为最后的答案可能很大,所以只要求输出答案 $bmod P$ 的值。

【输入】

只包含用空格隔开的两个整数 $n$ 和 $P$。

【输出】

仅含一个整数,表示不同的长度为 $2n$ 的有趣的数列个数 $bmod P$ 的值。

【输入样例】

3 10

【输出样例】

5

【提示】

样例说明

对应的 $5$ 个有趣的数列分别为 ${1,2,3,4,5,6},{1,2,3,5,4,6},{1,3,2,4,5,6},{1,3,2,5,4,6},{1,4,2,5,3,6}$。

数据范围与提示:

对于 50% 的数据,$n≤1000,P≤10^6$ ;

对于全部数据,$1≤n≤10^6 ,2≤P≤10^9$ 。

您必须 登录 才能发表评论!