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

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

题目大意:给定一个序列,找到连个数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;}

转载地址:http://ifvyx.baihongyu.com/

你可能感兴趣的文章
[原创翻译]Protocol Buffer Basics: C#
查看>>
呵呵!手把手带你在 IIS 上运行 Python(转)
查看>>
Windows 10 1809 版本市场占有率已达 21%
查看>>
一条报警信息的快速处理和分析
查看>>
mysqlpump和mysqldump的性能大比拼(r12笔记第90天)
查看>>
中国下一个巨大的风口:物联网
查看>>
【用户状态】详细解读Oracle用户ACCOUNT_STATUS的九种状态
查看>>
Action<T>和Func<T>
查看>>
spring MVC配置详解
查看>>
SQLSERVER数据库的运维策略脚本篇
查看>>
jstl中的日期格式化
查看>>
Purcell的Emacs配置在Windows下使用
查看>>
设计模式--策略模式
查看>>
nginx之rewrite
查看>>
华为交换机基本命令配置:建立VLAN,把端口划分到对于vlan上
查看>>
存储过程SET NOCOUNT ON的作用
查看>>
A basic Particles System(1)
查看>>
如何优雅的学习正则表达式
查看>>
phpstorm笔记
查看>>
VC 在颜色索引模式下 程序不能运行
查看>>