首页 > 代码库 > hdu 3723 Card Game(JAVA,卡特兰数)
hdu 3723 Card Game(JAVA,卡特兰数)
很容易想到的卡特兰数,不过复杂度高精度还是挺恶心的。
于是用JAVA秒杀了。
import java.math.BigInteger;import java.util.Scanner;public class Main { static BigInteger[] f=new BigInteger[5005]; static BigInteger[] c=new BigInteger[10005]; static BigInteger MOD; static void init(){ f[0]=BigInteger.valueOf(1); for(int i=1;i<=5000;i++){ f[i]=f[i-1].multiply(BigInteger.valueOf(4*i-2)); f[i]=f[i].divide(BigInteger.valueOf(i+1)); } String str="1"; for(int i=0;i<100;i++)str+="0"; MOD=new BigInteger(str); } public static void main(String[] args){ init(); Scanner cin=new Scanner(System.in); while(cin.hasNext()){ int n=cin.nextInt(); c[0]=BigInteger.valueOf(1); for(int i=1;i<=n;i++){ c[i]=c[i-1].multiply(BigInteger.valueOf(n-i+1)); c[i]=c[i].divide(BigInteger.valueOf(i)); } BigInteger ans=BigInteger.valueOf(0); for(int i=0;i*2<=n;i++){ BigInteger tmp=c[i*2].mod(MOD).multiply(f[i].mod(MOD)); ans=ans.add(tmp); ans=ans.mod(MOD); } System.out.println(ans); } }}
hdu 3723 Card Game(JAVA,卡特兰数)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。