题目链接
推不出来就借鉴一下别人的公式(! 0.0)
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int mod=1e9+7;
const int N=2e6+10;
ll f[N];
ll pows(ll a,ll b)
{
ll ans=1;
while(b)
{
if(b&1)
ans=ans*a%mod;
a=a*a%mod;
b>>=1;
}
return ans;
}
ll inv(ll a)
{
return pows(a,mod-2);
}
ll C(ll n,ll m)
{
return f[n]*inv(f[m])%mod*inv(f[n-m])%mod;
}
int main()
{
f[0]=1;
for(int i=1;i<N;i++)
{
f[i]=f[i-1]*i%mod;
}
int n,m;
cin>>n>>m;
ll a=n+m-4;
ll b=min(n-2,m-2);
cout<<C(a,b)<<endl;;
return 0;
}