• hdu 4927 Java大数


    http://acm.hdu.edu.cn/showproblem.php?pid=4927

    【解法】:最后的结果是C(n-1,0)*a[n] -C(n-1, 1) * a[n-1] ……C(n-1,n-1)*a[1]。符号位一正一负交替。

                因为n有3000 之大,算C(n,i) 时要用到大数。

    诶  其实早就把公式推出来了,就是坑在Java语言不熟悉,在编译的时候总是出现这个

    我们一直以为是语法错误,但是又发现有什么地方写错了,卡了几个小时,人都要抓狂了。

    今天拿着后面过的代码跟第一个交的比较才发现是数组里少求了一个值,所以一直提醒不能拿这个值再做运算。

    好吧 Java还是够强大。虽然这次经验满不愉快的但还是长了经验啦。

     1 //package 大数;
     2 
     3 import java.io.*;
     4 import java.math.BigInteger;
     5 import java.util.*;
     6 
     7 public class Main {
     8     
     9     public static void main(String[] args) {
    10         Scanner sc =new Scanner(System.in);
    11         int t; 
    12         BigInteger f[]=new BigInteger[3002];
    13         BigInteger a,b,ans,w,one;
    14         t=sc.nextInt();    
    15         while((t--)!=0)
    16         {
    17             int n;
    18             n=sc.nextInt();           
    19             a=BigInteger.valueOf(n-1);
    20             f[1]=new BigInteger("1");
    21             f[n]=f[1];           
    22             for(int i=2;i<=(n+1)/2;i++)
    23             {
    24                 f[i]=a;
    25                 f[n-i+1]=a;                
    26                 a=a.multiply(BigInteger.valueOf(n-i));
    27                 a=a.divide(BigInteger.valueOf(i));               
    28             }           
    29             ans=new BigInteger("0");
    30             int ss=(n-1)%2;
    31             for(int i=1; i<=n; i++)
    32             {
    33                 w=sc.nextBigInteger();
    34                 if(ss==0){
    35                     ans=ans.add(w.multiply(f[i]));
    36                     ss=1;
    37                 }
    38                 else{
    39                     ans=ans.subtract(w.multiply(f[i]));
    40                     ss=0;
    41                 }
    42             }            
    43           System.out.println(ans);     
    44         }
    45     }
    46 }
  • 相关阅读:
    异常处理学习笔记
    android 测试
    android 创建快捷方式
    POJ 3320 尺取法(基础题)
    HDOJ 1260 DP
    数位DP练习
    P2727 Stringsobits
    poj 2229 DP
    Canada Cup 2016 C. Hidden Word
    hdoj 1231 最大连续子列和
  • 原文地址:https://www.cnblogs.com/assult/p/3899322.html
Copyright © 2020-2023  润新知