https://codeforces.com/contest/1154/problem/G

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e7+1;
int a[N],pos[N][3];//pos【i】【j】表示数字i出现位置,j代表出现次数
int countt[N],ans1,ans2,p[N],C;
ll M=1e18;
inline int read(){
int sum=0;
int x=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')
x=0;
ch=getchar();
}
while(ch>='0'&&ch<='9')
sum=(sum<<1)+(sum<<3)+(ch^48),ch=getchar();
return x?sum:-sum;
}
int main(){
ios::sync_with_stdio(false);
int n=read();
//cin>>n;
for(int i=1;i<=n;i++){
int x=read();
//cin>>x;
a[x]++;
if(countt[x]<2)
pos[x][++countt[x]]=i;//记录位置,只要出现俩次就行了
}
//暴力枚举存在因子
for(int i=1;i<N;i++){
//如果有俩因子:ans1=i*j,ans2=i*j(与前面j不一定相同)
for(int j=1;i*j<N;j++){
while(a[i*j]&&C<2)//出现的就拿来用,减去存在次数(-1)
a[i*j]--,p[++C]=j;
if(C==2)
break;
}
//更新最小值
if(C==2&&M>(ll )p[1]*p[2]*i)
M=(ll)p[1]*p[2]*i,ans1=i*p[1],ans2=i*p[2];
while(C)//生成新的数则存在次数+1
a[i*p[C--]]++;
}
//找位置 如果俩个相同,则要输出不同位置,
if(ans1==ans2)
ans1=pos[ans1][1],ans2=pos[ans2][2];
else
ans1=pos[ans1][1],ans2=pos[ans2][1];
if(ans1>ans2)
swap(ans1,ans2);
cout<<ans1<<" "<<ans2;
return 0;
}

  

G. Minimum Possible LCM的更多相关文章

  1. Codeforces Round #552:G. Minimum Possible LCM

    官方题解是时间复杂度为O(nd)的.这里给出一个简单实现但是时间复杂度为O(NlogN) (N=1e7) 因为 a*b/gcd(a,b)=lcm(a,b) 所以我们可以枚举每一个因子,然后找到存在这个 ...

  2. Codeforces B. Minimum Possible LCM(贪心数论)

    题目描述: B. Minimum Possible LCM time limit per test 4 seconds memory limit per test 1024 megabytes inp ...

  3. Minimum Sum LCM(uva10791+和最小的LCM+推理)

    L - Minimum Sum LCM Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submi ...

  4. UVA.10791 Minimum Sum LCM (唯一分解定理)

    UVA.10791 Minimum Sum LCM (唯一分解定理) 题意分析 也是利用唯一分解定理,但是要注意,分解的时候要循环(sqrt(num+1))次,并要对最后的num结果进行判断. 代码总 ...

  5. Codeforces 1154G Minimum Possible LCM

    题目链接:http://codeforces.com/problemset/problem/1154/G 题目大意: 给定n个数,在这些数中选2个数,使这两个数的最小公倍数最小,输出这两个数的下标(如 ...

  6. 数论-质因数(gcd) UVa 10791 - Minimum Sum LCM

    https://vjudge.net/problem/UVA-10791/origin 以上为题目来源Google翻译得到的题意: 一组整数的LCM(最小公倍数)定义为最小数,即 该集合的所有整数的倍 ...

  7. F - Minimum Sum LCM

    LCM (Least Common Multiple) of a set of integers is defined as the minimum number, which is a multip ...

  8. G - GCD and LCM 杭电

    Given two positive integers G and L, could you tell me how many solutions of (x, y, z) there are, sa ...

  9. UVA 10791 Minimum Sum LCM(分解质因数)

    最大公倍数的最小和 题意: 给一个数字n,范围在[1,2^23-1],这个n是一系列数字的最小公倍数,这一系列数字的个数至少为2 那么找出一个序列,使他们的和最小. 分析: 一系列数字a1,a2,a3 ...

随机推荐

  1. springboot整合mybatis与thymeleaf

    1.创建springboot项目 (1)选择Spring Initializr (2)填写自己的Group 与 Artifact (3)选择依赖框架 等待maven下载好依赖和插件即可 2.主配置文件 ...

  2. JAVAEE 和项目开发(第五课:服务器软件的介绍)

    Web服务器根据对javaEE支持的能力分为两大类 1,JavaEE服务器(应用服务器) 1) IBM公司 WebSphere 2) BEA公司 WebLogic 3) JBoss 公司 JBoss ...

  3. Python风格规范分享

    今天给大家分享Python 风格规范,以下代码中 Yes 表示推荐,No 表示不推荐. 分号 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 行长度 每行不超过80个字符 以下情况除外: 长的 ...

  4. 51Nod-1072-威佐夫游戏

    有2堆石子.A B两个人轮流拿,A先拿.每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取.拿到最后1颗石子的人获胜.假设A B都非常聪明,拿石子的过程中不会出现失误.给出2堆石子的数量, ...

  5. Maven - pom.xml 文件

    章节 Maven – 简介 Maven – 工作原理 Maven – Repository(存储库) Maven – pom.xml 文件 Maven – 依赖管理 Maven – 构建生命周期.阶段 ...

  6. expdp远程导出oracle库

    1.手动在本地建目录 E:\lvchengData 2.执行命令 create or replace directory data as 'E:\lvchengData\'; 3.为本地system用 ...

  7. Unity 可重复随机数

    出处 https://blogs.unity3d.com/cn/2015/01/07/a-primer-on-repeatable-random-numbers/   (英文原版) http://ww ...

  8. openstack trove redis配置项

    trove在mitaka版本更新了一个功能,configuration 具体如下: trove help |grep configuration configuration-attach Attach ...

  9. 新iPhone上市会让富士康迎来新一轮的“用工荒”吗?

    新iPhone上市,在接下来的几个月内,中国制造会迎来一段非常忙碌或者说忙乱的日子,之所以说忙碌,是在于苹果的订单量常常大得吓人,而之所以说忙乱,则在于连同富士康.和硕.绿点科技等制造业巨头都可能遭遇 ...

  10. Json字符串转Java对象和List集合

    对象POJO和JSON互转 public class JsonUtil { /** * JSON 转 POJO */ public static <T> T getObject(Strin ...