题目
受不了这个csdn一会儿上传不了图一会儿打不开编辑页。
卡特兰数是 C(2n,n) - C(2n,n - 1) = 分子C(2n, n)分母 n + 1
用上节的逆元和求组合数直接给出,需要注意的是在同余mod情况下除法必须用逆元,直接除会错误。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static PrintWriter pw = new PrintWriter(System.out);
static int mod = (int) 1e9 + 7;
public static void main(String[] args) throws IOException {
String[] s = br.readLine().split(" ");
int n = Integer.parseInt(s[0]);
int a = (n << 1), b = n;
long res = 1;
for (int i = a; i > a - b; i--) res = res * i % mod;
for (int i = 1; i <= b; i++) res = res * qmi(i, mod - 2, mod) % mod;
pw.println(res / (n + 1));
pw.flush();
br.close();
}
public static long qmi(int a, int k, int q) {
long res = 1;
while (k != 0) {
if ((k & 1) != 0) res = res * a % q;
a = (int) ((long) a * a % q);
k >>= 1;
}
return res;
}
}