#P17289. [2024年南开中学集训]序列

[2024年南开中学集训]序列

题目描述

求有多少 1n1\sim n 的排列,满足:

  • 进行 kk 轮鸡尾酒排序后变为升序。

具体地,一轮鸡尾酒排序的 C++ 代码如下:

for (int i = 1; i < n; ++i) {
    if (a[i] > a[i + 1]) {
        swap(a[i], a[i + 1]);
    }
}
for (int i = n; i > 1; --i) {
    if (a[i - 1] > a[i]) {
        swap(a[i - 1], a[i]);
    }
}

由于答案可能很大,你只需要输出答案模 P=998244353P=998244353 的值。

输入格式

输入仅一行包含两个正整数 n,kn,k,分别表示排列长度和排序轮数。

输出格式

一行一个整数,表示答案。

样例 1 输入

5 1

样例 1 输出

68

样例 2 输入

100 10

样例 2 输出

106190859

样例 3 输入

12345678 10000

样例 3 输出

558147635

数据范围

对于所有数据,保证:

  • 1n10181\le n\le10^{18}
  • 0k1050\le k\le10^5
子任务编号 nn kk
1 10\le10 105\le10^5
242\sim4 24\le24
575\sim7 104\le10^4
8, 9 1018\le10^{18} 103\le10^3
101210\sim12 5000\le5000
131613\sim16 5×104\le5\times10^4
172017\sim20 105\le10^5