题目分析以及公式推导:
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)); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。