#5525. sort
sort
题目描述
大家都知道冒泡排序,但是可能有人不知道双向冒泡排序。我们给出它的一个伪代码:
void sort(){
for i : 1->(n-1)
if p[i] > p[i+1]
swap p[i],p[i+1]
for i : n->2
if p[i-1] > p[i]
swap p[i-1],p[i]
}
容易看出,对一个排列 调用 轮 sort()
后,它一定会变得升序。现在给出 ,请你回答有多少个长度为 的排列 ,满足调用了 次 sort()
方法后,可以将其排成升序。答案模 输出。
输入格式
从 sort.in
中读入。
一行两个正整数 。
输出格式
输出到 sort.out
中。
输出答案对 取模的结果。
样例输入 1
5 1
样例输出 1
68
数据范围
对于所有数据,保证 。
对于测试点 ,满足 。
对于测试点 ,满足 。
对于测试点 ,满足 。
对于测试点 ,满足 。
对于测试点 ,无特殊约束。
相关
在下列比赛中: