HDU 4927 Series 1(高精度+杨辉三角)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4927

解题报告:对于n,结果如下:

C(0,n-1) *A[n] - C(1,n-1) * A[n-1] + C(2,n-1) * A[n-2] - C(3,n-1) * A[n-3] ....... C(n-1,n-1) * A[1];

n <= 3000,到了后面二项式会很大,因为要用到高精度的乘法和除法,所以直接用java的大数类写了,简单多了。

 1 import java.math.BigInteger;
 2 import java.util.*;
 3
 4 public class Main
 5 {
 6     public static BigInteger ans,a,b,flag,temp;
 7     public static BigInteger[] A = new BigInteger[3005];
 8     public static void main(String[] argv)
 9     {
10
11         Scanner input = new Scanner(System.in);
12         int T,n;
13         T = input.nextInt();
14         for(int t = 0;t < T;++t)
15         {
16             n = input.nextInt();
17             ans = ans.valueOf(0);
18             a = a.valueOf(1);
19             b = a;
20             for(int i = 1;i <= n;++i)
21             {
22                 A[i] = input.nextBigInteger();
23                 A[i] = A[i].multiply(a);
24                 a = a.multiply(a.valueOf(n-i));
25                 a = a.divide(a.valueOf(i));
26             }
27             flag = flag.valueOf(1);
28             for(int i = n;i >= 1;--i)
29             {
30                 A[i] = A[i].multiply(flag);
31                 ans = ans.add(A[i]);
32                 flag = flag.multiply(flag.valueOf(-1));
33             }
34             System.out.println(ans);
35         }
36     }
37 }

HDU 4927 Series 1(高精度+杨辉三角),布布扣,bubuko.com

时间: 2024-10-13 10:22:30

HDU 4927 Series 1(高精度+杨辉三角)的相关文章

2014多校第六场 || HDU 4927 Series 1(杨辉三角组合数)

题目链接 题意 : n个数,每操作一次就变成n-1个数,最后变成一个数,输出这个数,操作是指后一个数减前一个数得到的数写下来. 思路 : 找出几个数,算得时候先不要算出来,用式子代替,例如: 1 2 3 4 5 6 (2-1) (3-2) (4-3) (5-4)(6-5) (3-2-2+1)(4-3-3+2)(5-4-4+3)(6-5-5+4) (4-3-3+2-3+2+2-1)(5-4-4+3-4+3+3-2)(6-5-5+4-5+4+4-3) (5-4-4+3-4+3+3-2-4+3+3-2

HDU 4927 Series 1 ( 组合+高精度)

Series 1 大意: 题意不好翻译,英文看懂也不是非常麻烦,就不翻译了. Problem Description Let A be an integral series {A1, A2, . . . , An}. The zero-order series of A is A itself. The first-order series of A is {B1, B2, . . . , Bn-1},where Bi = Ai+1 - Ai. The ith-order series of A

HDU 6129 Just do it 数学 杨辉三角 递推

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6129 题目描述: 将a序列转化成b序列, b[i] = a[1]^a[2]^a[3]^a[4]^......^a[i] 重复m次, 求b 解题思路: 我开始找的是系数的规律发现他满足杨辉三角, 也就是说我现在给出n 和 m , 然后求最后一项是奇数还是偶数, 然后自己就死推呀, 推了两个多点儿把所有的表都打遍了也没找到规律.....其实是有公式的......: C(x+y-2, y-2) 表示第i

POJ 3146 &amp; HDU 3304 Interesting Yang Yui Triangle(杨辉三角)

题目链接: HDU 3304 :http://acm.hdu.edu.cn/showproblem.php?pid=3304 POJ 3146  :http://poj.org/problem?id=3146 Problem Description Harry is a Junior middle student. He is very interested in the story told by his mathematics teacher about the Yang Hui trian

hdu 4927 Series 1(高精度) 2014多校训练第6场

Series 1                                                                            Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Problem Description Let A be an integral series {A1, A2, . . . , An}. The zero-o

HDU 5794 A Simple Chess(杨辉三角+容斥原理+Lucas)

题目链接 A Simple Chess 打表发现这其实是一个杨辉三角…… 然后发现很多格子上方案数都是0 对于那写可能可以到达的点(先不考虑障碍点),我们先叫做有效的点 对于那些障碍,如果不在有效点上,则自动忽略 障碍$(A, B)$如果有效,那么就要进行如下操作: 以这个点为一个新的杨辉三角的顶点,算出目标点的坐标$(x, y)$. 目标点的答案减去$C(A, B) * C(x, y)$的值. 但是这样会造成重复计算,原因是障碍之间可能有相互影响的关系. 这个时候就要考虑容斥原理,DFS消除这

HDU 2032 杨辉三角

杨辉三角 Problem Description 还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 Input 输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1<=n<=30),表示将要输出的杨辉三角的层数. Output 对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一个杨辉三角后面加一个空行. Sample Input 2

hdu 2032 杨辉三角 (java)

问题: 本题要求看出杨辉三角的规律,即:a[i][j]=a[i-1][j-1]+a[i-1][j]; 在输出的时候第一列没有输出,原因是j参数设置的是从1开始的,故将其改为0,用if满足j从一开始的需求就可以了. 杨辉三角 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 43154    Accepted Submission(s):

HDU 4927 Series 1(推理+大数)

HDU 4927 Series 1 题目链接 题意:给定一个序列,要求不断求差值序列,直到剩一个,输出这个数字 思路:由于有高精度一步,所以要推理一下公式,其实纸上模拟一下很容易推出公式就是一个类似杨辉三角的组合数求和,不过奇数位置是加,偶数位置是减,然后高精度过掉 代码: 本人的第一个JAVA程序^ ^ import java.util.Scanner; import java.math.BigInteger; public class Main { public static void ma