#4472. 排列(perm)

排列(perm)

【题目描述】

​ 小LLnn个红宝石和mm个蓝宝石。红宝石和蓝宝石都是可区分的。现在小LL想把这些宝石排成一列,使得:对于任意两个相邻的宝石,它们都不同色。请问有多少种填法?答案对1e9+71e9+7取模。

【输入格式】

​ 输入文件名为perm.in。

​ 第一行一个正整数TT,表示测试点的个数。

​ 接下来TT行,每行有两个数n,mn,m,表示红宝石和蓝宝石的个数。

【输出格式】

​ 输出文件名为perm.out。

​ 输出共TT行,每一行表示一个询问的答案。

【样例1】

2
2 2
3 2
8
12

【样例解释】

​ 考虑22个红宝石和22个蓝宝石的情况,将红宝石编号为A,BA,B,蓝宝石编号为C,DC,D,那么合法的排列有:ACBD,BCAD,ADBC,BDAC,CADB,CBDA,DACB,DBCAACBD,BCAD,ADBC,BDAC,CADB,CBDA,DACB,DBCA ,共88种,类似地,也可以推出33个红宝石22个蓝宝石的情况有1212种。

【样例2】

​ 见下发文件。

【数据范围】

​ 对于 30%30\% 的数据,满足 n,m5,T5n,m \leq 5,T \leq 5

​ 对于 60%60\% 的数据,满足 n,m1000,T1000n,m \leq 1000,T \leq 1000

​ 对于 100%100\% 的数据,满足 1n,m100000,1T1000001 \leq n,m \leq 100000,1 \leq T \leq 100000