zoukankan      html  css  js  c++  java
  • CF1111C Creative Snap 线段树

    用线段树模拟一下就好了~ 

    code: 

    #include <cstdio> 
    #include <algorithm>   
    #define lson ls[x]
    #define rson rs[x] 
    #define N 10000006 
    #define ll long long 
    #define setIO(s) freopen(s".in","r",stdin) 
    using namespace std;  
    ll A,B;
    int n,k,tot;           
    int ls[N],rs[N],sum[N];  
    void update(int &x,int l,int r,int p) 
    {
        if(!x) x=++tot; 
        ++sum[x];  
        if(l==r) return; 
        int mid=(l+r)>>1;  
        if(p<=mid)  update(lson,l,mid,p); 
        else update(rson,mid+1,r,p); 
    }       
    ll query(int x,int l,int r) 
    {
        if(!x) return A;   
        if(l==r) return B*sum[x];       
        int mid=(l+r)>>1;     
        ll re=B*1ll*(r-l+1)*sum[x];   
        return min(re,query(lson,l,mid)+query(rson,mid+1,r));    
    }
    int main() 
    { 
        // setIO("input");        
        int i,j,bs=1,rt=0; 
        scanf("%d%d%lld%lld",&n,&k,&A,&B);     
        for(i=1;i<=n;++i)  bs<<=1;    
        for(i=1;i<=k;++i) 
        {
            int po; 
            scanf("%d",&po),update(rt,1,bs,po);   
        }   
        printf("%lld
    ",query(rt,1,bs)); 
        return 0; 
    }
    

      

  • 相关阅读:
    01--DNS服务器3
    01--DNS服务器2
    装配bean
    实现二级域名
    apache反向代理
    struts拓展restful
    restful是什么
    struts的声明式异常处理
    linux常用命令之压缩打包
    linux常用命令之文件系统
  • 原文地址:https://www.cnblogs.com/guangheli/p/12091131.html
Copyright © 2011-2022 走看看