zoukankan      html  css  js  c++  java
  • 牛客练习 牛牛的mex(维护前缀后缀最小值)

    题目描述 

    输入描述:

    输出描述:

    样例

     

    思路 

    题目求解区间内未出现的最小的自然数,观察到此序列为全排列ai互不相同,则可以维护一个前缀最小值和后缀最小值,

    当查询某一区间时,根据除去该区间的其余左右区间的较小值即为答案。

    #include<bits/stdc++.h>
    using namespace std;
    int minn1[100005],minn2[100005];
    int a[100005];
    int main(){
        int n,q,u,v;cin>>n>>q;
        for(int i=1;i<=n;i++){
            cin>>a[i];
        }
        minn1[0]=minn2[n+1]=n;
        for(int i=1;i<=n;i++){
            minn1[i]=min(minn1[i-1],a[i]);
        }
        for(int i=n;i>=0;i--){
            minn2[i]=min(minn2[i+1],a[i]);
        }
        for(int i=0;i<n;i++){
            cin>>u>>v;
            cout<<min(minn1[u-1],minn2[v+1])<<endl;
        }
        return 0;
    }
  • 相关阅读:
    【lc-database】595. 大的国家
    Visual Studio 2010软件安装教程
    Win10系统下安装VC6.0教程
    HTTP协议
    正则表达式
    类装饰器
    装饰器工厂函数
    装饰器函数
    闭包
    web服务器
  • 原文地址:https://www.cnblogs.com/mohari/p/13582065.html
Copyright © 2011-2022 走看看