蓝杯二十八

作者: 逍遥_9353 | 来源:发表于2018-01-24 18:59 被阅读21次

算法训练 区间k大数查询 

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

提交此题  锦囊1  锦囊2

问题描述

给定一个序列,每次询问序列中第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

数据规模与约定

对于30%的数据,n,m<=100;

对于100%的数据,n,m<=1000;

保证k<=(r-l+1),序列中的数<=106。

#include <iostream>

using namespace std;

int main()

{

    int number;

    cin >> number;

    int numbers[100000];

    for ( int i = 1; i <= number; i++)

    {

        cin >> numbers[i];

    }

    int round;

    cin >> round;

    int temp;

    int numbersTemp[100000];    //替换数组

    for (int  i = 1; i <= round; i++)

    {

        int a, b, c;        区间[a,b]内,查询第c大的数。

        cin >> a >> b >> c;

  for (int i = a; i <= b; i++)

        {

            numbersTemp[i - a + 1] = numbers[i];

            // 将numbers中需要查询的段 存放进替换数组中 从1开始

        }

        //接下来是冒泡排序法

        for (int j = 1; j <= b - a + 1; j++)

        {

            for (int m = 1; m <= b - a + 1 - j; m++)

            {

                if (numbersTemp[m] < numbersTemp[m + 1])

                {

temp = numbersTemp[m];

                    numbersTemp[m] = numbersTemp[m + 1];

                    numbersTemp[m + 1] = temp;

                }

            }

        } 

        //输出第c大的数。

        cout << numbersTemp[c] << endl;

    }

        return 0;

}

蓝杯二十八 蓝杯二十八 蓝杯二十八

相关文章

  • 蓝杯二十八

    算法训练 区间k大数查询 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述 ...

  • 蓝杯二十

    /*数的读法 问题描述Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万...

  • 蓝杯十八

    /*矩形面积交 问题描述平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对...

  • 蓝杯四十

    算法训练 统计单词个数 时间限制:1.0s 内存限制:256.0MB 问题描述 给出一个长度不超过200...

  • 蓝杯十二

    一、/*分糖果 问题描述有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:每个小朋友都...

  • 蓝杯九

    /*阶乘计算 问题描述 输入一个正整数n,输出n!的值。其中n!=1*2*3*…*n。算法描述n!可能很大,而计算...

  • 蓝杯十三

    一、/*打印下述图案问题描述使用循环结构打印下述图形,打印行数n由用户输入。打印空格时使用"%s"格式,向prin...

  • 蓝杯十五

    /*买不到的题目问题描述小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋...

  • 蓝杯六

    一、/*所有水仙花数 问题描述 打印所有100至999之间的水仙花数。所谓水仙花数是指满足其各位数字立方和为该数字...

  • 蓝杯八

    一、/*最大最小值 问题描述给定 N 个整数,请你找出这 N 个数中最大的那个和最小的那个。 输入格式第一行包含一...

网友评论

    本文标题:蓝杯二十八

    本文链接:https://www.haomeiwen.com/subject/qrxpaxtx.html