您的位置:首页 > Web前端 > HTML

<html>

2017-08-18 12:47 246 查看
题目链接:hdu 4927 Series 1

题目大意:给定一个长度为n的序列a,每次生成一个新的序列。长度为n-1。新序列b中bi=ai+1−ai,直到序列长度为1.输出最后的数。

解题思路:n最多才3000。ai最大也才1000,貌似不会超int,可是要注意,有些数不止被计算了一次,最多的数被计算了C(15003000),所以肯定要用高精度处理,那么用o(n2)的复杂度肯定就跪了。

事实上对于最后的ans,ans=∑i=0n−1C(in−1)∗ai∗(−1)i+1(类似杨辉三角)

import java.util.Scanner;
import java.math.BigInteger;

public class Main {
public static void main(String[] args) {
Scanner cin =  new Scanner(System.in);

BigInteger[] a;
a = new BigInteger[3005];

int cas, n;
cas    = cin.nextInt();;

for (int k = 0; k < cas; k++) {
n = cin.nextInt();

for (int i = 0; i < n; i++)
a = cin.nextBigInteger();
BigInteger ans = BigInteger.valueOf(0);
BigInteger c = BigInteger.valueOf(1);;

for (int i = 0; i < n; i++) {
BigInteger tmp = c.multiply(a[n-i-1]);

if (i%2 == 0)
ans = ans.add(tmp);
else
ans = ans.subtract(tmp);

tmp = c.multiply(BigInteger.valueOf(n-i-1));
c = tmp.divide(BigInteger.valueOf(i+1));
}

System.out.println(ans);
}
}
}


阅读全文

版权声明:本文为博主原创文章,未经博主同意不得转载。
举报

标签:

本文已收录于下面专栏:

0条评论





[/i]

发表评论

HTML/XML
objective-c
Delphi
Ruby
PHP
C#
C++
JavaScript
Visual Basic
Python
Java
CSS
SQL
其他

相关文章推荐

[startrelatedarticles]

{relatedtitle}

{relateddes}





{relatedusername}

{relateposttime}

[/i]{relateviewcount}

[endrelatedarticles]

[startrelatedarticlesad1]





{relatedtitle}

{relateddes}





{relatedusername}

{relateposttime}

[/i]{relateviewcount}

[endrelatedarticlesad1]

[startrelatedarticlesad2]





{relateddes}

[endrelatedarticlesad2]



不慌不忙、不急不躁

+关注

原创
304

粉丝
12

喜欢
0

[/i]
hdu 5876 Sparse Graph(BFS+并查集)

[/i]
hdu 5875 Function(高效)

[/i]
hdu 5593 ZYB's Tree(树形dp)

[/i]
hdu 5592 ZYB's Premutation(线段树)

很多其它文章

在线课程



【直播】计算机视觉原理及实战—屈教授



【套餐】深度学习入门视频课程—唐宇迪

[/i]
文件夹

[/i]
[/i]

[/i]
喜欢
取消喜欢

[/i]
收藏

[/i]
分享

[/i]
微博


[/i]
微信


[/i]
QQ


收藏助手

不良信息举报

您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:色情
政治
抄袭
广告
招聘
骂人

其它

原文地址:
原因补充:(最多仅仅同意输入30个字)



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: