题意:给你一堆数,问其中lcm最小的一对数是什么?

思路:因为lcm(a, b) = a * b / gcd(a, b), 所以我们可以考虑暴力枚举gcd, 然后只找最小的a和b,去更新答案即可。

数据范围1e7? 不慌,bitset搞一下, 1e7log(1e7)可以500ms过。

代码:

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000010;
bitset<maxn * 10> v, v1;
int a[maxn];
vector<int> ans;
long long res = 1e18;
int main() {
int n, res1, res2, pos1 = -1, pos2 = -1, mx = 0;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
mx = max(mx, a[i]);
if(v[a[i]] == 1) v1[a[i]] = 1;
v[a[i]] = 1;
}
for (int i = 1; i <= mx; i++) {
ans.clear();
for (int j = i; j <= mx; j += i) {
if(v[j]) {
ans.push_back(j);
if(v1[j]) ans.push_back(j);
if(ans.size() >= 2) break;
}
}
if(ans.size() < 2) continue;
if(res > (long long)ans[0] * ans[1] / i) {
res = (long long)ans[0] * ans[1] / i;
res1 = ans[0], res2 = ans[1];
}
}
int flag = 0;
for (int i = 1; i <= n; i++) {
if(pos1 == -1 && res1 == a[i]) {
pos1 = i;
flag |= 1;
continue;
}
if(pos2 == -1 && res2 == a[i]) {
pos2 = i;
flag |= 2;
}
if(flag == 3) break;
}
if(pos1 > pos2) swap(pos1, pos2);
printf("%d %d\n", pos1, pos2);
}

  

最新文章

  1. JAVA简单工厂模式(从现实生活角度理解代码原理)
  2. [No00003A]操作系统Operating Systems 内核级线程Kernel Threads内核级线程实现Create KernelThreads
  3. Ubuntu 汉化及kate汉化和使用自带终端的解决方式
  4. Python配合BeautifulSoup读取网络图片并保存在本地
  5. Cloudera Hadoop什么是CDH及CDH版本介绍
  6. 【转】解决svn Authorization failed错误
  7. oracle10g库连接报错
  8. 20141017--类型String类
  9. 单例模式(Singleton)的6种实现
  10. openstack 在线repo
  11. C语言字节对齐 __align(),__attribute((aligned (n))),#pragma pack(n)
  12. 在RichTextBox控件中插入图片
  13. (转)iOS7界面设计规范(13) - UI基础 - 与iOS的系统整合
  14. Android使用HttpClient向服务器传输文件
  15. ES6 - 变量的解构赋值学习笔记
  16. Python学习二:词典基础详解
  17. Writing a Simple Publisher and Subscriber
  18. MySQL_关于索引空间的的一些记录
  19. web api 安全
  20. JAVA多线程之线程间的通信方式

热门文章

  1. 连电子硬件行业都在开始使用 Git 了你还在等什么?
  2. FC Switch sfpshow
  3. snmp 介绍和Ubuntu安装使用
  4. MySQL Join算法与调优白皮书(二)
  5. 汇编_指令_LEA和MOV的区别
  6. 慢日志之二:ERROR 1146 (42S02): Table &#39;mysql.slow_log&#39; doesn&#39;t exist,分析诊断工具之四
  7. [转]java中byte转换int时为何与0xff进行与运算
  8. offset()和position()
  9. 杂项: Redis
  10. ESXI5-WIN2008R2安装域控以及额外域笔记