atcoder#ARC076A. [ABC065C] Reconciled?

[ABC065C] Reconciled?

题目描述

すぬけ君は、犬を N N 匹と猿を M M 匹飼っています。すぬけ君は、この N+M N+M 匹を一列に並べようと思っています。

文字通り犬猿の仲の犬たちと猿たちを仲直りさせたいすぬけ君は、犬同士、または猿同士が隣り合うところができないように並べようと思っています。

このような並べ方は何通りあるでしょうか。犬と猿は 109+7 10^9+7 以上の数を理解できないので、並べ方の個数を 109+7 10^9+7 で割ったあまりを求めてください。 ただし、犬同士、また猿同士は互いに区別します。また、左右が反転しただけの列も異なる列とみなします。

输入格式

入力は以下の形式で標準入力から与えられる。

N N M M

输出格式

並べ方の個数を 109+7 10^9+7 で割ったあまりを出力せよ。

题目大意

题目描述

すぬけ君养了 N N 只狗和 MM 只猴。すぬけ君想把这 N+MN+M 只动物排成一列。

すぬけ君希望狗与狗不能互相挨着,猴与猴不能互相挨着。

这样的排列方式有多少种?请输出答案对 109+710^9+7 取模的结果。不过,狗与狗间,猴与猴间相互区别。

数据范围

  • 1N,M1051 \leq N,M \leq 10^5

输入

输入按以下标准:

N M

输出

输出方案数对 109+710^9+7 取模的结果

样例1解释

将每只狗分别记为A,B,将每只猴分别记为C,D,则共有ACBD,ADBC,BCAD,BDAC,CADB,CBDA,DACB,DBCA 88 种排列方法。

感谢@ミク 提供的翻译

2 2
8
3 2
12
1 8
0
100000 100000
530123477

提示

制約

  • 1  N,M  105 1\ ≦\ N,M\ ≦\ 10^5

Sample Explanation 1

犬をそれぞれ A,B とし、猿をそれぞれ C,D とすると、ACBD,ADBC,BCAD,BDAC,CADB,CBDA,DACB,DBCA8 8 通りの並べ方があります。