【2014 Multi-University Training Contest 6】 G. Series 1(n阶差分,组合数,大数)

来源:互联网 发布:淘宝女服装 编辑:程序博客网 时间:2024/06/14 00:34


用Java大数注意不能预处理组合数数组,会爆内存,而且hdu会给你一个Wrong Answer,而不是Memory Limit Exceed.你不会知道自己错在哪里......

代码:

import java.util.*;import java.math.*;public class Main{public static void main(String[] args){Scanner cin = new Scanner(System.in);int T,n;BigInteger c[] = new BigInteger [3020];T = cin.nextInt();while((T--)!=0){n = cin.nextInt();for(int i=1;i<=n;++i)c[i] = cin.nextBigInteger();BigInteger sum = c[n];int flag = 0;BigInteger use = BigInteger.valueOf(1);for(int i=n-1;i>=1;--i){use = use.multiply(BigInteger.valueOf(i)).divide(BigInteger.valueOf(n-i));BigInteger Big = use.multiply(c[i]);if(flag==1){sum=sum.add(Big);flag=0;}else{sum=sum.subtract(Big);flag=1;}}System.out.println(sum);}} }


0 0
原创粉丝点击