题目大意:

星星作圆周运动的周期给出,若已连成一条线,下一次所有星星在同一条线上的时间

用分数形式输出

这里我们可以利用追及问题来计算出两个星星之间连成一条直线的时间,也即速度快的星星追上速度慢的星星弧度PI

t = PI /abs (2PI / t1 - 2PI / t2) = t1 * t2 / (2 * abs(t1 - t2))

这样前面作为分子后面作为分母,每次得到一个分数记得利用gcd化简

然后把所有两两得到的时间差求个最小公倍数

分数的最大公倍数是分子求最小公倍数, 分母求最大公约数

 import java.util.*;
import java.math.*; public class Main { public static void main(String [] args){
Scanner cin = new Scanner(System.in);
while(cin.hasNext()){
Integer n;
n = cin.nextInt();
int [] t = new int[1005];
for(int i = 0 ; i<n ; i++)
t[i] = cin.nextInt(); long [] a = new long[1005];
long [] b = new long[1005];
for(int i = 0 ; i<n-1 ; i++){
int tmp1 = t[i] * t[i+1];
int tmp2 = 2 * Math.abs(t[i] - t[i+1]);
int k = GCD(tmp1 , tmp2);
a[i] = tmp1 / k;
b[i] = tmp2 / k;
} BigInteger ans1 = BigInteger.valueOf(a[0]);
BigInteger ans2 = BigInteger.valueOf(b[0]);
for(int i = 1 ; i<n-1 ; i++){
BigInteger tmp = ans1.gcd(BigInteger.valueOf(a[i]));
ans1 = ans1.multiply(BigInteger.valueOf(a[i]));
ans1 = ans1.divide(tmp);
ans2 = ans2.gcd(BigInteger.valueOf(b[i]));
} System.out.println(ans1 + " " + ans2);
}
} public static int GCD(int a , int b){
if(b == 0) return a;
return GCD(b , a%b);
}
}

POJ 3101 大数+gcd的更多相关文章

  1. poj 3101 Astronomy (java 分数的最小公倍数 gcd)

    题目链接 要用大数,看了别人的博客,用java写的. 题意:求n个运动周期不完全相同的天体在一条直线上的周期. 分析:两个星球周期为a,b.则相差半周的长度为a*b/(2*abs(a-b)),对于n个 ...

  2. poj 3101 Astronomy(分数的最小公倍数)

    http://poj.org/problem? id=3101 大致题意:求n个运动周期不全然同样的天体在一条直线上的周期. 这题我是看解题报告写的,没想到选用參照物,用到了物理中的角速度什么的. 由 ...

  3. poj 1811 大数分解

    模板 #include<stdio.h> #include<string.h> #include<stdlib.h> #include<time.h> ...

  4. poj 3101 Astronomy

    2个星球周期为a,b.则相差半周的长度为a*b/(2*abs(a-b)),对于n个只需求这n个 分数的最小公倍数即可! 公式: 分数的最小公倍数 = 分子的最小公倍数/分母的最大公约数 由于涉及到大数 ...

  5. How many Fibs?(poj 2413)大数斐波那契

    http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=259#problem/C Description Recall the defi ...

  6. UVA+POJ中大数实现的题目,持续更新(JAVA实现)

    UVA10494:If We Were a Child Again 大数除法加取余 import java.util.Arrays; import java.util.Scanner; import ...

  7. POJ - 1061 扩展gcd

    题意:求\((n-m)t+Lk=x-y\)的解\(t\) #include<iostream> #include<algorithm> #include<cstdio&g ...

  8. 【poj 2429】GCD & LCM Inverse (Miller-Rabin素数测试和Pollard_Rho_因数分解)

    本题涉及的算法个人无法完全理解,在此提供两个比较好的参考. 原理 (后来又看了一下,其实这篇文章问题还是有的……有时间再搜集一下资料) 代码实现 #include <algorithm> ...

  9. poj 1503 大数相加(java)

    代码: import java.math.*; import java.util.Scanner; public class Main { public static void main(String ...

随机推荐

  1. bzoj 1770: [Usaco2009 Nov]lights 燈【高斯消元+dfs】

    参考:https://blog.csdn.net/qq_34564984/article/details/53843777 可能背了假的板子-- 对于每个灯建立方程:与它相邻的灯的开关次数的异或和为1 ...

  2. Java多线程(十)线程间通信 join

    若果主线程想等待子线程执行完成之后再结束,可以用join方法 join 和sleep区别 join内部有wait实现,所以当执行join方法后,当前线程的锁被释放,那么其他线程就可以调用此线程的同步方 ...

  3. json和Jsonp 使用总结(1)

    1.Json的使用 $.getJSON("subPreview", { jsonDatas: JSON.stringify(jsonData) }, function(data) ...

  4. [Qt Creator 快速入门] 第0篇 开始学习Qt 与Qt Creator

    Qt官方信息 Qt官网:http://qt.digia.com/ Qt开源官网:http://qt-project.org/ Qt最新版本下载:http://qt-project.org/downlo ...

  5. K Seq HihoCoder - 1046 || BZOJ4504 k个串

    这题与超级钢琴类似,然而重复的不重复计算贡献.. 那么先求出数组nxt,nxt[i]表示第i个元素之后的第一个与其相等的元素的下标,不存在则nxt[i]=0 考虑取的区间左端点为1时的情况. 将读入序 ...

  6. yii int

    @echo off rem ------------------------------------------------------------- rem Yii command line ini ...

  7. 转 awr自动收集脚本

    1. remote get awr report #!/usr/bin/ksh ####sample: sh awr.sh 20170515 20170516 AWR ### default it w ...

  8. 转】 mysql5.6.12 for Linux安装

    原博文出自于: http://blog.csdn.net/book_mmicky/article/details/25714049 感谢! 1:上www.mysql.org下载64位版本mysql5. ...

  9. 从实际案例聊聊Java应用的GC优化--转

    https://tech.meituan.com/jvm_optimize.html 当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化 ...

  10. 向listview控件中添加数据库数据

    //连接字符串 string str = "Data Source=.;Initial Catalog=mu;User ID=sa;Password=111"; //创建数据库连接 ...