#2347. 蒙蒙的卡牌游戏

蒙蒙的卡牌游戏

蒙蒙的卡牌游戏

题目背景

蒙蒙太无聊了,她翻着她面前的卡牌,突然想到了一个好玩的游戏。由于她过度沉迷于这个游戏,导致她思考速度大大降低,所以请你来帮她解决下面的这个问题。

题目描述

一副牌一共有2n2n张牌,每张牌都有一个值,并且这些牌的值组成了一个12n1-2n的排列。

游戏玩法如下:

1.从牌堆顶部取一张牌放到自己的牌库顶。

2.如果牌堆为空,则进行第33步,否则你需要猜测牌堆顶的牌值是否大于你当前牌库顶的牌值,然后把牌堆顶的牌翻开放到自己的牌库顶。如果你猜对了,且牌堆还有牌,则重复进行第22步,否则进行第33步。

3.结束游戏。

由于蒙蒙已经玩晕了,所以她只会采取一种简单的策略来玩这个游戏:

假设当前牌库顶的值小于等于nn,则她会猜测牌堆顶的值更大,否则她会猜测牌堆顶的值更小。

她想知道,在所有的可能中((2n)!(2n)!种可能),她能一共获得多少张牌(即牌库的牌的数量和)。

由于答案可能很大,所以你只需要输出MOD mMOD\space m意义下的值即可。

输入格式

请注意输入文件名。

第一行一共两个整数n,mn,m,含义见上。

输出格式

请注意输出文件名。

你需要输出11个整数,表示能获得的牌的总数。

样例 #1

样例输入 #1

1 1000000

样例输出 #1

4

样例 #2

样例输入 #2

2 1000000

样例输出 #2

84

样例 #3

样例输入 #3

3 1000000

样例输出 #3

3084

样例 #4

样例输入 #4

请注意,此题我们没有提供额外的样例。

样例输出 #4

请注意,此题我们没有提供额外的样例。

提示

数据范围:

对于10%的数据,我们保证1<=n<=51<=n<=5

对于100%的数据,我们保证1<=n<=300,2<=m<=1091<=n<=300,2<=m<=10^9

样例解释:

n=2n=2时,牌有可能出现的排列为1,2,4,31,2,4,3

模拟整个过程:

取第一张牌放置于牌库顶。

猜牌堆顶的牌大于牌库顶(因为1<=n1<=n),将第二张牌放置于牌库顶,由于猜对了,继续游戏。

猜牌堆顶的牌大于牌库顶(因为2<=n2<=n),将第三张牌放置于牌库顶,由于猜对了,继续游戏。

猜牌库顶的牌小于牌库顶(因为4>=n4>=n),将第四张牌放置于牌库顶,由于猜对了,但没牌了,所以结束游戏。

此时牌库中一共有22张牌。

当排列为2,1,3,42,1,3,4时,牌库中一共有22张牌。

当排列为1,2,3,41,2,3,4时,牌库中一共有4张牌,请注意,虽然第33次猜测时猜错了,但我们仍然将其放入了牌库中。

你需要对所有可能的情况的牌库牌数求和,最后求和答案为84。