【OpenJ_POJ C16D】Extracurricular Sports(构造,找规律)
2016-07-23 16:20
369 查看
题目
求n个互不相同的数,满足其和为其lcm。
我们把lcm看成一个线段,分割成长度不同的n份。
当然分法有很多,我们只需要构造一个好想好写的。
先分成两个二分之一,取其中一个二分之一再分成1/3和2/3,接下来每次取1/3的分成1/3和2/3。
1
1/2 1/2
1/2 2/6 1/6
1/2 2/6 2/18 1/18
最短的是1/18的这份,我们让它为1。则可算出其它的长度:9 6 2 1。
所以1,2为最短的两个,接下来每个数就是前面的数的和的两倍,最后一个数是前面所有的数之和。
再长一点:1 2 6 18 54 81
可以发现,前面两个数是1,2,接下来是前面一个数的3倍,最后一个数是3的n-2次方。
令$a[0]=1,a[i]=2*3^{i-1}$,答案就是a[0]到a[n-2],a[n-1]/2。
用java的大整数类写起来比较精简。
求n个互不相同的数,满足其和为其lcm。
我们把lcm看成一个线段,分割成长度不同的n份。
当然分法有很多,我们只需要构造一个好想好写的。
先分成两个二分之一,取其中一个二分之一再分成1/3和2/3,接下来每次取1/3的分成1/3和2/3。
1
1/2 1/2
1/2 2/6 1/6
1/2 2/6 2/18 1/18
最短的是1/18的这份,我们让它为1。则可算出其它的长度:9 6 2 1。
所以1,2为最短的两个,接下来每个数就是前面的数的和的两倍,最后一个数是前面所有的数之和。
再长一点:1 2 6 18 54 81
可以发现,前面两个数是1,2,接下来是前面一个数的3倍,最后一个数是3的n-2次方。
令$a[0]=1,a[i]=2*3^{i-1}$,答案就是a[0]到a[n-2],a[n-1]/2。
用java的大整数类写起来比较精简。
import java.io.*; import java.math.*; import java.util.*; public class Main{ //a[i]=1 2 6 18 54 162 static BigInteger a[]=new BigInteger[250]; public static void main(String[] args){ Scanner cin= new Scanner(System.in); a[0]=BigInteger.valueOf(1); a[1]=BigInteger.valueOf(2); for(int i=2;i<=200;i++) a[i]=a[i-1].multiply(BigInteger.valueOf(3)); int t=cin.nextInt(); for(int i=1;i<=t;i++){ int n=cin.nextInt(); if(n==2)System.out.println(-1); else{ for(int j=0;j<n-1;j++) System.out.println(a[j]); System.out.println(a[n-1].divide(BigInteger.valueOf(2))); } } } }
相关文章推荐
- linux下cp目录时排除一个或者多个目录的方法
- 向HDFS上传文件时报错16/07/23 01:13:30 WARN hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop.ipc.Rem
- Hive的安装部署、测试、功能架构、表数据加载、导出、查询
- docker学习笔记-批量删除停止运行的容器
- OpenCV | 基本操作API
- Linux下crontab定时任务服务
- linux系统常用命令
- POJ -3641Pseudoprime numbers(快速幂+同余定理)
- FastDFS监控中心安装
- 卸载docker
- Pseudoprime numbers
- mac idea tomcat
- POJ 3641 Pseudoprime numbers(费马小定理,快速幂,数论)
- Xen support being dropped by Red Hat, what should customers do?
- Pseudoprime numbers POJ 3641
- Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 错误&&Eclipse 访问tomcat首页报404错误
- Docker镜像文件存储结构
- ubuntu14.04搭建hadoop集群
- linux stat函数讲解
- Opencv图像识别从零到精通(14)-----线性滤波和非线性滤波