题目分析以及公式推导:
import java.io.*;
import java.util.*;
import java.math.BigInteger;
public class Solution
{
public static BigInteger fac[]=new BigInteger[2013];
public static void main(String[] args)
{
init();
Scanner cin = new Scanner(System.in);
int t = cin.nextInt();
while(t--!=0)
{
int p=cin.nextInt();
BigInteger ans=fac[2*p];
BigInteger temp=fac[p];
ans=ans.divide(temp);
ans=ans.divide(temp);
ans=ans.subtract(BigInteger.valueOf(2));
ans=ans.divide(BigInteger.valueOf(p));
ans=ans.add(BigInteger.valueOf(2));
System.out.println(ans);
}
}
public static void init()
{
for(int i=1;i<2012;i++)
fac[i]=BigInteger.ONE;
for(int i=2;i<2012;i++)
fac[i]=fac[i-1].multiply(BigInteger.valueOf(i));
}
}