题号:NC293964
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
“以我残躯化烈火”。

给定两个整数

,你需要构建一个方阵,满足:

方阵的每一个元素均为整数,且大于等于

;

矩阵的主对角线(即全部

的格子)上的数值和不超过

;

记矩阵的大小为

,从矩阵中取出
任意 
个不在同一行同一列的整数,
每一种取法的

个数值之和均相等。

输出满足条件的不同的方阵数量。由于答案可能很大,请将答案对
)
取模后输出。
输入描述:
每个测试文件均包含多组测试数据。第一行输入一个整数
代表数据组数,每组测试数据描述如下:
在一行上输入两个整数
,表示矩阵的两个构造限制。

输出描述:
对于每组测试数据,新起一行输出一个整数表示答案。
示例2
输入
复制
10
294 2
491 2
438 2
299 2
387 2
252 2
354 2
329 2
264 2
418 2
输出
复制
899709563
439264386
647789715
692949917
111075444
608532172
362065671
828748609
679278772
914456216