zoukankan      html  css  js  c++  java
  • 51nod 1421 最大MOD值

    分析:首先去重排序,然后枚举a[i]的倍数,找到最大的a[j],使得a[j]小于a[i]的倍数,用二分法找,然后更新一下最大值。枚举a[i]和倍数复杂度为O(nlogn),二分O(logn),总的为O(n(logn)^2)。

     1 #include<iostream>
     2 #include<algorithm>
     3 #include<cstring>
     4 using namespace std;
     5 const int maxn=200005;
     6 int a[maxn],n;
     7 bool have[5*maxn];
     8 inline int Dich(int t,int l){
     9     if(a[n-1]<=t)return a[n-1];
    10     if(a[l]>t)return a[l-1];
    11     int r=n-1,m=(r+l)/2;
    12     while(l<r&&l!=m){
    13         if(a[m]==t)return a[m];
    14         if(a[m]>t)r=m;
    15         else l=m;
    16         m=(l+r)/2;
    17     }
    18     return a[m];
    19 }
    20 int main(){
    21     cin>>n;
    22     int v;
    23     memset(have,0,sizeof(have));
    24     for(int i=0;i<n;i++){
    25         cin>>v;
    26         if(have[v]){
    27             n--;i--;
    28             continue;
    29         }
    30         a[i]=v;
    31         have[v]=true;
    32     }
    33     sort(a,a+n);
    34     int ans=0;
    35     for(int i=0;i<n;i++){
    36         int t=a[i]*2;
    37         do{
    38             int k=Dich(t-1,i+1)%a[i];
    39             if(k>ans)ans=k;
    40         }while((t+=a[i])<=a[n-1]);
    41     }
    42     cout<<ans<<endl;
    43     return 0;
    44 }
  • 相关阅读:
    vue系列——数据请求
    优化记录
    优化记录
    正则
    跨域问题
    原型链之prototype/__proto__/constructor
    vue系列——组件数据通讯(二)
    vue系列——组件数据通讯(一)
    ES6(一)
    ES5总结
  • 原文地址:https://www.cnblogs.com/7391-KID/p/7071784.html
Copyright © 2011-2022 走看看