• P1801 黑匣子


    链接:Miku

    ------------------------

    在做这个题之前我做了1168,所以该出来了个这

    #include<iostream> 
    #include<cstdio>
    #include<algorithm>
    #include<queue>
    
    using namespace std;
     priority_queue <int,vector<int>,greater<int> > q1;//小顶 
     priority_queue <int,vector<int>,less<int> >q2;//大顶 
     queue <int>tol;
     int n,k;
    int m; 
    int a[2000006],u[2000006];
    int x;
    int f=1;
    int tim;
    int ans;
    void get(int g){
        if(g<=q2.size()){
            for(int j=q2.size()-g+1;j;j--){
                tol.push(q2.top());
                q2.pop();
            }
            cout<<tol.front()<<endl;
            while(!tol.empty()){
                q2.push(tol.front());
                tol.pop();
            }
        }else{
            for(int j=g-q2.size();j;--j){
                tol.push(q1.top());
                q1.pop();
            }
            cout<<tol.front()<<endl;
            while(!tol.empty()){
                q1.push(tol.front());
                tol.pop();
            }
        }
        return ;
    }
    int main(){
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;++i){
            scanf("%d",&a[i]);
        }
        for(int i=1;i<=m;++i){
            scanf("%d",&u[i]);
        }
        for(int i=1;i<=n;++i){
            k=a[i];
            if(i==1){
            q2.push(k);
            }
            else{
                if(q2.top()>k)
                q2.push(k);
                else
                q1.push(k);
            }
            if(q2.size()>q1.size()&&q2.size()-q1.size()>1){
                x=q2.top();
                q1.push(x);
                q2.pop();
            }
            if(q1.size()>q2.size()&&q1.size()-q2.size()>1){
                x=q1.top();
                q2.push(x);
                q1.pop();    
            }
            while(i==u[f]){
        //        cout<<3432<<endl;
                f++;
                tim++;
                get(tim);
            }
        }
    //    cout<<f<<endl;
        return 0;
    }
    红黑配

    它不对

    --------------------------

    虽然说还是对顶堆,但是既然要求第I小的数,那么前面那个大根堆我光放i个数,然后直接输出堆顶就行了。

    -------------------------------

    #include<iostream> 
    #include<cstdio>
    #include<algorithm>
    #include<queue>
    using namespace std;
     priority_queue <int,vector<int>,greater<int> > q1;//小顶 
     priority_queue <int,vector<int>,less<int> >q2;//大顶 
     queue <int>tol;
     int n,k;
    int m; 
    int a[2000006],u[2000006];
    int x;
    int f=1;
    int tim=1;
    int ans;
    int main(){
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;++i){
            scanf("%d",&a[i]);
        }
        for(int i=1;i<=m;++i){
            scanf("%d",&u[i]);
        }
        for(int i=1;i<=n;++i){
            if(i==1){
                q2.push(a[i]);
            }else if(a[i]>q2.top()){
                q1.push(a[i]);
            }
            else{
                q2.push(a[i]);
            }
            while(i==u[f]){
                while(q2.size()<tim){//维持数量 
                    q2.push(q1.top());
                    q1.pop();
                }
                while(q2.size()>tim){
                    q1.push(q2.top());
                    q2.pop();
                }
                printf("%d
    ",q2.top());
                f++;
                tim++;
            }
        }
        return 0;
    }
    Ac
  • 相关阅读:
    27 Spring Cloud Feign整合Hystrix实现容错处理
    26 Spring Cloud使用Hystrix实现容错处理
    25 Spring Cloud Hystrix缓存与合并请求
    24 Spring Cloud Hystrix资源隔离策略(线程、信号量)
    23 Spring Cloud Hystrix(熔断器)介绍及使用
    22 Spring Cloud Feign的自定义配置及使用
    21 Spring Cloud使用Feign调用服务接口
    20 Spring Cloud Ribbon配置详解
    19 Spring Cloud Ribbon自定义负载均衡策略
    18 Spring Cloud Ribbon负载均衡策略介绍
  • 原文地址:https://www.cnblogs.com/For-Miku/p/13354713.html
Copyright © 2020-2023  润新知