一个方法和一个公式
方法:把01排列的组合看成路径因为0和1都是确定的,所以终点也就确定了,然后组合公式C(12,6)是因为总共有12步,最多1或0可以走6步,而C(12,5)因为7是超出6的边界了,所以我们选5作为参考,只能走5步0,然后减去就是一个公式了
公式:根据组合原理 n! = (n-1)! x n
得出C(2n,n)-C(2n,n-1) = C(2n,n) / n+1;
因为要%1e9+7,而且是个质数,所以除一个数就是乘一个数的逆元^-1,
得出2n x 2n-1 x … x n+1 / 1 x 2 x 3 x … x n x (n+1)^-1 % mod
因为每次乘都可能超出int范围,所以需要mod
import java.util.*;
public class Main{
static int p=1000000000+7;
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
long res=1;
for(int i=n*2;i>=n+1;i--) res=res*i%p;
for(int i=1;i<=n;i++) res=res*quimi(i,p-2,p)%p;
res=res*quimi(n+1,p-2,p)%p;
System.out.println(res);
}
static int quimi(int a,int k,int p){
long res=1;
while(k>0){
if((k&1)==1) res=res*a%p;
a=(int)((long)a*a%p);
k>>=1;
}
return (int)res;
}
}