#P1034. Zeryq

Zeryq

Zeryq

题目描述

小 Y 有一个 nn 个数的排列 aia_i,他因为计算行列式系数时算麻了,所以他想让排列中不存在由某个数组成的逆序对,记这个数为 xx,即排列中不能存在逆序对 (x,y)(x,y)(z,x)(z,x) (其中 x,y,zx,y,z 均为数值,而非下标,且 y<x<zy<x<z),他可以进行如下操作若干次使排列合法。

对于一次操作,小 Y 可以选择一对 l,r(1lrn)l,r(1\le l \le r\le n),把区间 [l,r][l,r]aia_i 整体平移到排列的开头或者末尾,即排列变成 a1...al1ar+1...anal...ara_1...a_{l-1}a_{r+1}...a_na_l...a_r 或者 al...ara1...al1ar+1...ana_l...a_ra_1...a_{l-1}a_{r+1}...a_n

定义 f(i)f(i) 为使排列中不存在由 ii 组成的逆序对时所需的最小操作次数。

小 Y 不希望操作太多次,所以请你帮忙求 i=1nf(i)m\sum_{i=1}^n f(i)\le m 的排列方案数。

因为答案可能很大,所以答案需要对于 998244353998244353 取模。

输入格式

TT 组数据。

对于每组数据,输入两个整数 nnmm,表示排列的长度以及限制。

输出格式

输出总共 TT 行。

对于每组数据输出一个整数,表示答案。

输入输出样例 #1

输入 #1

5
3 2
3 6
5 4
8 8
19 23

输出 #1

3
6
25
1667
316603214

说明/提示

样例第一组,(1,2,3),(1,3,2),(2,1,3)(1,2,3),(1,3,2),(2,1,3) 为满足条件的排列。其中 (1,3,2)(1,3,2)f(2)=f(3)=1f(2)=f(3)=1 ,均可以只进行一次操作把 [2,2][2,2] 平移到末尾使排列变成 (1,2,3)(1,2,3) ,此时无 2233 构成的逆序对;(2,1,3)(2,1,3)f(2)=f(1)=1f(2)=f(1)=1 ,均可以只进行一次操作把 [2,2][2,2] 平移到 开头使排列变为 (1,2,3)(1,2,3) ,此时无 1122 构成的逆序对。

样例第二组,所有排列均满足 i=13f(i)6\sum_{i=1}^3 f(i)\le 6 ,所以答案为 3!=63!=6

样例第三组,(2,1,3,5,4)(2,1,3,5,4) 为满足条件的排列之一 ,其中 f(1)=f(2)=f(4)=f(5)=1,f(3)=0f(1)=f(2)=f(4)=f(5)=1,f(3)=0 ,故 i=15f(i)=4\sum_{i=1}^5 f(i)=4

【样例2】

sample2.insample2.out

该样例数据满足测试点编号 1818 对应的限制。

样例文件下载

样例文件下载

数据范围及约定

对于 100100% 的数据: 2n100,0mn2,1T1052\le n\le 100,0 \le m\le n^2,1\le T\le 10^5

测试点编号 TT nn \leq mm \leq TT\le
1,21, 2 55 n2n^2 55
33 88
44 99
55 1010
66 2020 22 2020
77 33
88 44
99 55
10,11,1210,11,12 n2n^2 11
1313 100100 11 10510^5
142014 \sim 20 (T10)×10(T-10)\times 10 n2n^2