题目链接:Codeforces 484B Maximum Value

题目大意:给定一个序列,找到连个数ai和aj,ai%aj尽量大,而且ai≥aj

解题思路:类似于素数筛选法的方式,每次枚举aj,然后枚举k,每次用二分找到小于k∗aj而且最大的ai,维护答案,过程中加了一些剪枝。

#include <cstdio>
#include <cstring>
#include <algorithm> using namespace std;
const int maxn = 1e6+5; int N, a[maxn]; int solve (int x) {
int ret = 0, p = x;
while (p < maxn) {
p += x;
int k = lower_bound(a, a + N, p) - a; if (k == 0) continue;
else k--; if (a[k] <= x) continue; ret = max(ret, a[k] % x);
}
return ret;
} int main () {
scanf("%d", &N);
for (int i = 0; i < N; i++)
scanf("%d", &a[i]);
sort(a, a + N); int ans = 0;
for (int i = N-1; i >= 0; i--) {
if (ans >= a[i] - 1)
break;
if (i < N - 1 && a[i] == a[i+1])
continue;
ans = max(ans, solve(a[i]));
}
printf("%d\n", ans);
return 0;
}

最新文章

  1. Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0
  2. PHP的学习--可变函数
  3. dos下mysql登陆
  4. Java基础--常用正则匹配符号(必背,必须背,死都要背)
  5. 使用sysprep克隆虚拟机
  6. 嵌入式Linux-GNU Make 使用手册(中译版)
  7. TCP的长连接与短连接
  8. 浮动层固定兼容IE6 position:fixed的最佳解决方案
  9. 使用cocoapods的两个大坑的修改方法
  10. Maven详解(八)------ 继承和聚合
  11. python学习笔记之自定义函数的导入
  12. CSS鼠标悬浮DIV后显示DIV外的按钮
  13. Open Live Writer安装教程
  14. ORACLE 11g 创建数据库时 Enterprise Manager配置失败的解决办法 无法打开ORACLE企业管理器(EM)的解决办法
  15. html 基本布局介绍
  16. Java精选面试题之Spring Boot 三十三问
  17. WorldWind源码剖析系列:四叉树瓦片集合类QuadTileSet
  18. 前端开发实用工具-Bower的使用。
  19. java使用freemarker生成word文档
  20. java ssm 后台框架平台 项目源码 websocket 即时通讯 IM quartz springmvc

热门文章

  1. XML数组和对象,反之亦然
  2. [linux]scp指令(转)
  3. 《神秘的程序员们》漫画26~28:《万年坑系列》 I、II、III(转)
  4. java生成二维码(带logo)
  5. Webx相框:RequestContext详细说明
  6. VisualSVN
  7. linux(fedora) 下dvwa 建筑环境
  8. SpringMVC上传下载
  9. EJBCA于Linux安装在
  10. 创建自定义的Middleware中间件