Series 1 java秒组合数
举几个例子发现, 系数中间对称,很容易想到组合数 c(n,m)==c[n,n-m).此题就是高精度求组合数,java秒之。
time:1825ms ,接近时限,如果n还稍微大一点就超时。
1 import java.math.*;
2 import java.util.*;
3 import java.io.*;
4 import java.text.*;
5
6 public class Main
7 {
8 static int MS=3005;
9 public static void main(String[] args)
10 {
11 Scanner cin=new Scanner(new BufferedInputStream(System.in));
12 int[] a=new int[MS];
13 int T,n;
14 T=cin.nextInt();
15 while(T-->0)
16 {
17 n=cin.nextInt();
18 for(int i=0;i<n;i++)
19 a[i]=cin.nextInt();
20 BigInteger ans=BigInteger.valueOf(a[n-1]);
21 BigInteger res=BigInteger.ONE;
22 BigInteger flag=BigInteger.valueOf(-1);
23 BigInteger t=BigInteger.ONE;
24 n=n-1;
25 for(int i=1,j=n;i<=n;i++,j--)
26 {
27 res=res.multiply(BigInteger.valueOf(j)).divide(BigInteger.valueOf(i));
28 t=res.multiply(flag).multiply(BigInteger.valueOf(a[j-1]));
29 flag=flag.multiply(BigInteger.valueOf(-1));
30 ans=ans.add(t);
31 }
32 System.out.println(ans);
33 }
34 cin.close();
35 }
36 }
Series 1 java秒组合数的更多相关文章
- 【JAVA秒会技术之秒杀面试官】秒杀Java面试官——集合篇(一)
[JAVA秒会技术之秒杀面试官]秒杀Java面试官——集合篇(一) [JAVA秒会技术之秒杀面试官]JavaEE常见面试题(三) http://blog.csdn.net/qq296398300/ar ...
- java实现组合数_n!_杨辉三角_组合数递推公式_回文数_汉诺塔问题
一,使用计算机计算组合数 1,设计思想 (1)使用组合数公式利用n!来计算Cn^k=n!/k!(n-k)!用递推计算阶乘 (2)使用递推的方法用杨辉三角计算Cn+1^k=Cn^k-1+Cn^k 通过数 ...
- Octal Fractions java秒 C++
Octal Fractions 题目抽象: 将八进制小数转换成十进制小树.小数的为数很大. 可以用java 中的BigDeciaml 秒掉. time:297ms 1 import java. ...
- java计算组合数
import java.util.Scanner; public class Zuheshu { //计算m阶乘 public static int Fun(int m){ int su ...
- java 秒时间格式化
public static String durationFormat(Integer totalSeconds) { if (totalSeconds == null || totalSeconds ...
- ACdream 1007 a+b 快速幂 java秒啊,快速幂 避免 负数移位出错
a + b ( sigma (ai^x) ) % mod 1 import java.util.*; 2 import java.math.*; 3 import java.io.*; 4 p ...
- 【转载】【JAVA秒会技术之图片上传】基于Nginx及FastDFS,完成图片的上传及展示
基于Nginx及FastDFS,完成商品图片的上传及展示 一.传统图片存储及展示方式 存在问题: 1)大并发量上传访问图片时,需要对web应用做负载均衡,但是会存在图片共享问题 2)web应用服务器的 ...
- 【Java】-NO.20.Exam.1.Java.1.001- 【1z0-807】- OCEA
1.0.0 Summary Tittle:[Java]-NO.20.Exam.1.Java.1.001-[1z0-807] Style:EBook Series:Java Since:2017-10- ...
- 【Java】-NO.16.EBook.4.Java.1.007-【疯狂Java讲义第3版 李刚】- Java基础类
1.0.0 Summary Tittle:[Java]-NO.16.EBook.4.Java.1.007-[疯狂Java讲义第3版 李刚]- Java基础类 Style:EBook Series:J ...
随机推荐
- who -b
~]# who -b 系统引导 2020-05-03 19:57[root@localhost ~]# who -r 运行级别 5 2020-05-03 19:58
- Linux_用户和组管理
一.用户分类 1.管理员和普通用户 1️⃣:管理员 -- 用户ID:0 2️⃣:普通用户 -- 用户ID:1-65535 2.普通用户又分为系统用户和登陆用户 1️⃣:系统用户 -- 用 ...
- Ubuntu 获取升级信息失败。可能网络有问题
升级Ubuntu系统时遇到的这个问题, 原因是默认的源不是国内的,而且还可能导致下载慢等问题. 1.备份源 cd /etc/apt/ sudo cp sources.list sources.list ...
- 云计算OpenStack共享组件---信息队列rabbitmq(2)
一.MQ 全称为 Message Queue, 消息队列( MQ ) 是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们. 消息传 ...
- Canal--服务端和客户端搭建
服务端 源码编译 git clone https://github.com/alibaba/canal.git 用IDEA打开克隆的项目 等待maven下载完依赖后开始编译过程 依赖下载完成后,打开m ...
- 8.1 fdisk:磁盘分区工具
fdisk 是Linux下常用的磁盘分区工具.受mbr分区表的限制,fdisk工具只能给小于2TB的磁盘划分分区.如果使用fdisk对大于2TB的磁盘进行分区,虽然可以分区,但其仅识别2TB的空间,所 ...
- flink的checkpoint页面监控
flink web页面中提供了针对Job Checkpoint相关的监控信息.Checkpoint监控页面共有overview.history.summary和configuration四个页签,分别 ...
- WEB安全防护相关响应头(上)
WEB 安全攻防是个庞大的话题,有各种不同角度的探讨和实践.即使只讨论防护的对象,也有诸多不同的方向,包括但不限于:WEB 服务器.数据库.业务逻辑.敏感数据等等.除了这些我们惯常关注的方面,WEB ...
- openresty 学习笔记二:获取请求数据
openresty 学习笔记二:获取请求数据 openresty 获取POST或者GET的请求参数.这个是要用openresty 做接口必须要做的事情.这里分几种类型:GET,POST(urlenco ...
- GO学习-(2) 从零开始搭建Go语言开发环境
从零开始搭建Go语言开发环境 一步一步,从零搭建Go语言开发环境. 安装Go语言及搭建Go语言开发环境 下载 下载地址 Go官网下载地址:https://golang.org/dl/ Go官方镜像站( ...