博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 484B Maximum Value(高效+二分)
阅读量:5277 次
发布时间:2019-06-14

本文共 911 字,大约阅读时间需要 3 分钟。

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

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

#include 
#include
#include
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;}

转载于:https://www.cnblogs.com/mengfanrong/p/4325563.html

你可能感兴趣的文章
简单的网页发邮件例子
查看>>
打印机打印字符串转字节数组截取半个中文导致的乱码问题
查看>>
Android自定义组合控件:UIScrollLayout(支持界面滑动及左右菜单滑动)
查看>>
yii_wiki_145_yii-cjuidialog-for-create-new-model (通过CJuiDialog来创建新的Model)
查看>>
庖丁解“学生信息管理系统”
查看>>
Pyltp使用
查看>>
Android中ListView嵌套GridView的简单消息流UI(解决宽高问题)
查看>>
CentOS 6.5 安装 apache php myslq
查看>>
iOS的大概念 -- iOS是Apple应用开发和运行的基石
查看>>
bzoj1009: [HNOI2008]GT考试
查看>>
数论某些题目
查看>>
Storm Topology Parallelism
查看>>
MySQL存储过程详解 mysql 存储过程
查看>>
Star sky 二维前缀和
查看>>
准程序员也注定孤独一生吗?
查看>>
第二十七篇:goto语句
查看>>
uTTY Secure Copy client Windows 文件同步工具
查看>>
计算机组成体系结构总览
查看>>
C++11语法糖
查看>>
乐理学习
查看>>