CF_484B_MaximumValue
2015-07-29 22:27
309 查看
Maximum Value
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
You are given a sequence a consisting of
n integers. Find the maximum possible value of
(integer remainder of
ai divided by
aj), where
1 ≤ i, j ≤ n and
ai ≥ aj.
Input
The first line contains integer n — the length of the sequence (1 ≤ n ≤ 2·105).
The second line contains n space-separated integers
ai (1 ≤ ai ≤ 106).
Output
Print the answer to the problem.
Sample test(s)
Input
Output
二分查找的问题
暴力显然超时,因为数据量很大。
规定了大数模小数,显然最大的模
出现在最靠近小数n倍的位置(2倍以上)
搜索这个值即可。
对输入数据应该进行去重处理。
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
You are given a sequence a consisting of
n integers. Find the maximum possible value of
(integer remainder of
ai divided by
aj), where
1 ≤ i, j ≤ n and
ai ≥ aj.
Input
The first line contains integer n — the length of the sequence (1 ≤ n ≤ 2·105).
The second line contains n space-separated integers
ai (1 ≤ ai ≤ 106).
Output
Print the answer to the problem.
Sample test(s)
Input
3 3 4 5
Output
2
二分查找的问题
暴力显然超时,因为数据量很大。
规定了大数模小数,显然最大的模
出现在最靠近小数n倍的位置(2倍以上)
搜索这个值即可。
对输入数据应该进行去重处理。
//坑了半天!原来二分搜索! #include <iostream> #include <stdio.h> #include <algorithm> using namespace std; const int M=200005; int su[M]; int shu[M]; int uni(int n) //去掉重复元素 { shu[0]=su[0]; int p=1; for(int i=1;i<n;i++) { if(su[i]!=su[i-1]) { shu[p]=su[i]; p++; } } return p; } int bs(int lo,int hi,int k) //找出最接近k的数的位置 { int mid,re=lo; while(lo<=hi) { mid=(lo+hi)/2; if(shu[mid]>=k) hi=mid-1; else { re=max(lo,mid); lo=mid+1; } } return re; } int find(int i,int n) //找出较小数为i时的最大模 { int lo=0; int re=0; for(int j=shu[i]*2;lo<n-1;j+=shu[i]) { lo=bs(lo,n-1,j); re=max(re,shu[lo]%shu[i]); } return re; } int main() { int n; int maxm; while(scanf("%d",&n)!=EOF) { maxm=0; for(int i=0;i<n;i++) { scanf("%d",&su[i]); } sort(su,su+n); n=uni(n); for(int i=0;i<n-1;i++) { maxm=max(maxm,find(i,n)); } printf("%d\n",maxm); } return 0; }
相关文章推荐
- iOS"Request failed: unacceptable content-type: text/html"
- CF_288B_PoloThePenguinAndHouses
- UIView
- UI的类--UIView
- 使用JS给value属性赋值的实例
- The Dole Queue
- UILabel
- vector\list\deque的选取
- [iOS]UILable文字如何在顶部
- UI04_UIButton
- CharSequence与String区别
- Snail—UI学习之弹出按钮选择项UIActionSheet
- Snail—UI学习之旋转进度轮UIActivityIndicatorView
- Snail—UI学习之提醒框UIAlertView
- iOS UIAlertView
- 使用GXT的ThemeBuilder建立自己的皮肤
- Snail—UI学习之自定义标签栏UITabBarController
- UIView
- Unique Binary Search Trees
- HDU 4908 BestCoder Sequence