POJ3101 Astronomy【素因子分解】【大数乘法】

2024-06-15 04:48

本文主要是介绍POJ3101 Astronomy【素因子分解】【大数乘法】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目链接:

http://poj.org/problem?id=3101


题目大意:

有 N 个行星绕着中心天体飞行,给你每个行星飞行的周期,问:最少运行多少时间

能让所有的行星在同一条直线上。结果用分数表示。输出该分数的分子和分母。


解题思路:

选择第一个行星为参考系,其周期为 T0,则其他行星的周期为 Ti,则其他行星的相

对角速度为 Vi = (T0-Ti) * 2π / (T0*Ti)。绕过半个圆周的时间 ti = π / Vi = 

(T0*Ti) / ((T0-Ti)*2)。

那么问题就变为了求所有 ti 的分子的最小公倍数 和 分子的最大公约数。


AC代码:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
const int MAXN = 1010;int GCD(int a,int b)
{if(b == 0)return a;return GCD(b,a%b);
}int A[MAXN],B[MAXN],C[MAXN*10];int main()
{int N;while(~scanf("%d",&N)){for(int i = 0; i < N; ++i)scanf("%d",&A[i]);memset(B,0,sizeof(B));memset(C,0,sizeof(C));B[0] = 1;int a,b,gcd,fm = 0,k;for(int i = 1; i < N; ++i){if(A[i] != A[0]){b = A[i]*A[0];a = abs(A[i]-A[0])*2;gcd = GCD(a,b);a /= gcd;b /= gcd;fm = GCD(a,fm);for(int j = 2; b > 1; ++j){if(b % j == 0){k = 0;while(b % j == 0){b /= j;k++;}if(k > C[j])    //C[] 数组记录素因子的幂 对应的最大值C[j] = k;}}}}int tmp;for(int i = 0; i < MAXN*10; ++i){for(int j = 0; j < C[i]; ++j){tmp = 0;for(int k = 0; k < MAXN; ++k){B[k] = B[k]*i + tmp;tmp = B[k] / 10000;B[k] %= 10000;}}}int i = 999;while(i > 0 && B[i] == 0)i--;printf("%d",B[i]);for(--i; i >= 0; --i)printf("%04d",B[i]);printf(" %d\n",fm);}return 0;
}


这篇关于POJ3101 Astronomy【素因子分解】【大数乘法】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1062469

相关文章

【Linux进阶】UNIX体系结构分解——操作系统,内核,shell

1.什么是操作系统? 从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境。我们通常将这种软件称为内核(kerel),因为它相对较小,而且位于环境的核心。  从广义上说,操作系统包括了内核和一些其他软件,这些软件使得计算机能够发挥作用,并使计算机具有自己的特生。这里所说的其他软件包括系统实用程序(system utility)、应用程序、shell以及公用函数库等

Python分解多重列表对象,isinstance实现

“”“待打印的字符串列表:['ft','bt',['ad',['bm','dz','rc'],'mzd']]分析可知,该列表内既有字符对象,又有列表对象(Python允许列表对象不一致)现将所有字符依次打印并组成新的列表”“”a=['ft','bt',['ad',['bm','dz','rc'],'mzd']]x=[]def func(y):for i in y:if isinst

推荐算法之矩阵分解实例

矩阵分解的数据利用的上篇文章的数据,协同过滤 用到的知识 python的surprise k折交叉验证 SVD SVDpp NMF 算法与结果可视化 # 可以使用上面提到的各种推荐系统算法from surprise import SVD,SVDpp,NMFfrom surprise import Datasetfrom surprise import print_perf

2000年 - 2022年 Fama-French三因子模型数据+代码

Fama-French三因子模型是由著名经济学家尤金·法玛(Eugene Fama)和肯尼斯·法兰奇(Kenneth French)提出的,旨在改进资本资产定价模型(CAPM),更全面地解释资产收益率的变化。该模型认为,除了市场风险溢价外,还有两个额外的风险因子可以解释股票或投资组合的超额回报率,即市值因子(也称为规模因子)和账面市值比因子。 以下是Fama-French三因子模型中涉及的关键指

Strassen矩阵乘法简要解析(第4章:分治策略)

Strassen矩阵乘法简要解析 Strassen矩阵乘法具体描述如下: 两个n×n 阶的矩阵A与B的乘积是另一个n×n 阶矩阵C,C可表示为假如每一个C(i, j) 都用此公式计算,则计算C所需要的操作次数为n3 m+n2 (n- 1) a,其中m表示一次乘法,a 表示一次加法或减法。 为了使讨论简便,假设n 是2的幂(也就是说, n是1,2,4,8,1 6,...)。 首先,假设

[leetcode] 43. Multiply Strings(大数相乘)

Multiply Strings 描述 Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2. Note: 1. The length of both num1 and num2 is < 110. 2. Both num1 an

慎投!新增7本期刊被“On Hold“,14本影响因子下降!

本周投稿推荐 SSCI • 中科院2区,6.0-7.0(录用友好) EI • 各领域沾边均可(2天录用) CNKI • 7天录用-检索(急录友好) SCI&EI • 4区生物医学类,0.5-1.0(录用率99%) • 1区工程类,6.0-7.0(进展超顺) • IEEE(TOP),7.5-8.0(实力强刊) On Hold:新增7本期刊有风险 自科睿唯安发布最新影响因子

警惕!最新17本期刊(含2本Top)被“镇压”,无影响因子无分区,这是被踢了吗?

本周投稿推荐 SSCI • 中科院2区,6.0-7.0(录用友好) EI • 各领域沾边均可(2天录用) CNKI • 7天录用-检索(急录友好) SCI&EI • 4区生物医学类,0.5-1.0(录用率99%) • 1区工程类,6.0-7.0(进展超顺) • IEEE(TOP),7.5-8.0(实力强刊) 本期解析 1、2023JCR于昨天已经正式发布,其中有17本期

IF膨胀时代,“水刊”当赢?2023热门“水刊”影响因子详解!

【欧亚科睿学术】 1 “四大水刊”详情 图片来源:欧亚科睿学术整理 “四大水刊”的影响因子均有所下跌,其中,曾经被列入中科院预警名单的期刊MEDICINE,其影响因子已是连续三年持续下降。从JCR分区来看,四本期刊分区均有所上升。究其原因,其实是因为很多ESCI参与了JCR分区的排名,可以理解为“垫分”了! 2 新“四大水刊”详情 图片来源:欧亚科睿学术整