zoukankan      html  css  js  c++  java
  • 埃氏筛+线段树——cf731F

    从2e5-1依次枚举每个数作为主显卡,然后分段求比它大的数的个数,这里的复杂度是调和级数ln2e5,即埃氏筛的复杂度、、

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define N 200005
    int cnt[N],n;
    
    #define lson l,m,rt<<1
    #define rson m+1,r,rt<<1|1
    ll num[N<<2];
    void update(int pos,int v,int l,int r,int rt){
        if(l==r){
            num[rt]+=v;
            return;
        }
        int m=l+r>>1;
        if(pos<=m)update(pos,v,lson);
        else update(pos,v,rson);
        num[rt]=num[rt<<1]+num[rt<<1|1];
    }
    ll query(int L,int R,int l,int r,int rt){
        if(L<=l && R>=r){
            return num[rt];
        }
        int m=l+r>>1;
        ll res=0;
        if(L<=m)res+=query(L,R,lson);
        if(R>m)res+=query(L,R,rson);
        return res;
    }
    
    int main(){
        cin>>n;
        for(int i=1;i<=n;i++){
            int x;scanf("%d",&x);
            cnt[x]++;
        }
        
        ll ans=0;
        for(ll i=200000;i>=1;i--)if(cnt[i]){
            ll tmp=0;
            update(i,cnt[i],1,200000,1);
            for(ll j=1;j*i<=200000;j++)
                tmp+=query(j*i,min(200000ll,(j+1)*i-1),1,200000,1)*i*j;
            ans=max(ans,tmp);
        }
        cout<<ans<<endl;
    }
  • 相关阅读:
    Android中Services之异步IntentService(二)
    Android服务之Service(其一)
    JPA 2.0 中的动态类型安全查询
    JPA注解参考
    WebService netbeans glassfish
    android ContentProvider
    github
    移动端
    php
    mysql
  • 原文地址:https://www.cnblogs.com/zsben991126/p/11440213.html
Copyright © 2011-2022 走看看