#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e6+6;
const ll mod = 1e9+7;
ll n;
ll fa[maxn], infa[maxn];
ll qsm(ll a, ll b, ll k)
{
ll res = 1;
while(b)
{
if(b & 1) res = res*a%mod;
b >>= 1;
a = a*a%mod;
}
return res;
}
int main()
{
cin >> n;
// c2n n = 2n! / n! *(2n-n)!
fa[0] = infa[0] = 1;
for(int i = 1; i <= 2e5+2; i ++)
{
fa[i] = fa[i-1]*i%mod;
infa[i] = infa[i-1]*qsm(i, mod-2, mod)%mod;
}
cout << fa[2*n]%mod*infa[n]%mod*infa[n]%mod*qsm(n+1,mod-2, mod)%mod << endl;
return 0;
}
注意,所有的除法都要转换成逆元, 不仅c几几,除n-1也要转换
Orz
dltql