• 蓝桥杯试题 算法训练 区间k大数查询



    题目链接:http://lx.lanqiao.cn/problem.page?gpid=T11###


    题目描述:

    资源限制
    时间限制:1.0s   内存限制:256.0MB

    给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。


    输入格式

    第一行包含一个数n,表示序列长度。

    第二行包含n个正整数,表示给定的序列。

    第三个包含一个正整数m,表示询问个数。

    接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。


    输出格式
    总共输出m行,每行一个数,表示询问的答案。

    样例输入
    5
    1 2 3 4 5
    2
    1 5 2
    2 3 2

    样例输出
    4
    2

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int cmp(int a,int b){return a>b;}
     4 int main(){
     5     int n,m,l,r,k;
     6     cin>>n;
     7     vector<int> a(n);
     8     for(int i=0;i<n;i++)
     9         cin>>a[i];
    10     cin>>m;
    11     vector<int> b(m);
    12     for(int i=0;i<m;i++){
    13         cin>>l>>r>>k;
    14         int *p=new int[n];
    15         for(int j=0;j<n;j++){
    16             p[j]=a[j];
    17         }
    18         sort(p+l-1,p+r,cmp);
    19         b[i]=p[l-1+k-1];
    20         delete p;
    21     }
    22     for(int i=0;i<m;i++){
    23         cout<<b[i]<<endl;
    24     }
    25     return 0;
    26 }

  • 相关阅读:
    437. Path Sum III
    51. N-Queens
    dfs 感悟
    Topological Sorting
    138 Copy List with Random Pointer
    130. Surrounded Regions
    The sum problem
    A + B Again
    Rectangles
    An easy problem
  • 原文地址:https://www.cnblogs.com/ZKYAAA/p/12616988.html
Copyright © 2020-2023  润新知