51nod1421 最大MOD值

Posted BBChq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51nod1421 最大MOD值相关的知识,希望对你有一定的参考价值。

O(n2)tle。O(nlognlogn)

#include<cstdio>
#include<cstring>
#include<cctype>
#include<algorithm>
using namespace std;
#define rep(i,s,t) for(int i=s;i<=t;i++)
#define dwn(i,s,t) for(int i=s;i>=t;i--)
#define clr(x,c) memset(x,c,sizeof(x))
int read(){
	int x=0;char c=getchar();
	while(!isdigit(c)) c=getchar();
	while(isdigit(c)) x=x*10+c-‘0‘,c=getchar();
	return x;
} 
const int nmax=2e5+5;
int a[nmax];
int main(){
	int n=read();
	rep(i,1,n) a[i]=read();
	sort(a+1,a+n+1);
	int ans=0,tp;
	rep(i,1,n-1){
		for(int j=a[i]+a[i];j<=a[n]*2;j+=a[i]){
			tp=lower_bound(a+1,a+n+1,j)-a-1;ans=max(ans,a[tp]%a[i]);
		}
	} 
	printf("%d\n",ans);
	return 0; 
}

  

题目来源: CodeForces
基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题
技术分享 收藏
技术分享 关注

有一个a数组,里面有n个整数。现在要从中找到两个数字(可以是同一个) ai,aj ,使得 ai mod aj 最大并且 ai  aj

Input
单组测试数据。
第一行包含一个整数n,表示数组a的大小。(1 ≤ n ≤ 2*10^5)
第二行有n个用空格分开的整数ai (1 ≤ ai ≤ 10^6)。
Output
输出一个整数代表最大的mod值。
Input示例
3
3 4 5
Output示例
2

以上是关于51nod1421 最大MOD值的主要内容,如果未能解决你的问题,请参考以下文章

51nod 1421 最大MOD值

1421 最大MOD值

51Nod 1004 n^n的末位数字(日常复习快速幂,莫名的有毒,卡mod值)

51Nod1039 N^3 Mod P 数论 原根 BSGS

51Nod 1046 A^B Mod C Label:快速幂

51nod1123 X^A Mod B (任意模数的K次剩余)