问题描述

给定一个序列,每次询问序列中第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>
#include <algorithm>
using namespace std;int n, m;//序列长度,询问个数
int l,r,K; //表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。
int a[1002]; //存放序列int main()
{scanf("%d", &n);for(int i = 1; i <= n; i++){scanf("%d", &a[i]);}sort(a, a+n+1); //从小到大排序scanf("%d", &m); //m个查询while(m--){scanf("%d%d%d", &l, &r, &K);//从l到r 从大到小的第K大for(int i = r; i >= l; i--){K--;if(K == 0){printf("%d\n", a[i]);}}}return 0;
}

WA原因:没有认真审题,太天真。输入数组后想着从小到大排序,输出第几大,但是忽略数组已改变的事实,有点蠢!

AC代码:

#include <iostream>
#include <algorithm>
using namespace std;int n, m;//序列长度,询问个数
int l,r,K; //表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。
int a[1010],b[1010]; //存放序列bool cmp(int a, int b)
{return a > b;
}int main()
{scanf("%d", &n);for(int i = 1; i <= n; i++){scanf("%d", &a[i]);}scanf("%d", &m); //m个查询while(m--){scanf("%d%d%d", &l, &r, &K);//从l到r 从大到小的第K大int index = 0;for(int i = l; i <= r; i++){b[index++] = a[i];}sort(b,b+index);printf("%d\n", b[index-K]);}return 0;
}

总结:做题还是不要想得太天真啦啦啦啦!

蓝桥练习-算法训练 区间k大数查询相关推荐

  1. java 蓝桥杯 算法训练 区间k大数查询(题解)

    试题 算法训练 区间k大数查询 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示 ...

  2. 蓝桥杯 算法训练 区间k大数查询(水题)

    算法训练 区间k大数查询 时间限制:1.0s   内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. ...

  3. 蓝桥杯 算法训练 区间k大数查询 --c++

    试题 算法训练 区间k大数查询 提交此题 评测记录 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一 ...

  4. 蓝桥杯 算法训练 区间k大数查询

    问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二行包含n个正整数,表示给定的序列. 第三个包含一个正整数m,表示询问个数 ...

  5. 蓝桥试题 算法训练 区间k大数查询 JAVA

    问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二行包含n个正整数,表示给定的序列. 第三个包含一个正整数m,表示询问个数 ...

  6. 蓝桥杯java 算法训练 区间K大数查询

    问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二行包含n个正整数,表示给定的序列. 第三个包含一个正整数m,表示询问个数 ...

  7. 蓝桥杯 ALGO-1 算法训练 区间k大数查询

    问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二行包含n个正整数,表示给定的序列. 第三个包含一个正整数m,表示询问个数 ...

  8. 算法训练 区间k大数查询

    问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二行包含n个正整数,表示给定的序列. 第三个包含一个正整数m,表示询问个数 ...

  9. python【蓝桥杯vip练习题库】ALGO-1区间k大数查询

    试题 算法训练 区间k大数查询 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示 ...

最新文章

  1. Oracle 9i学习日志(9)--数据字典与动态性能视图及练习
  2. Markdown基础语法小结
  3. python怎么安装request_【python】如何安装requests
  4. 自己动手写ORM框架(六):实现查询功能FindById方法
  5. jquery 找不到live方法解决
  6. py脚本实现用例执行html报告,pytest文档7-pytest-html生成html报告
  7. 东北大学计算机期末考试题,东北大学计算机组成原理题库(10)
  8. angularjs 实例_AngularJS过滤器示例教程
  9. PHP报错 File:E:\\...\index\\controller\\Test.php Line(18) Illegal offset type in isset or empty
  10. AB PLC软件如何破解?
  11. CATIA 鼠标快捷键组合
  12. requirejs+jquery表单验证
  13. MQTT协议(四) 【PUBLISH】发布消息
  14. asp.net914-自驾游网站的设计与实现
  15. 三大框架之---MyBaits第二章
  16. LinuxC语言简单实现图片加马赛克-标准IO实现
  17. 职场六大困惑,处理不好每一个都很扎心
  18. Goland 常用插件
  19. 基于Dotnetty和Protobuf的Unity客户端开发(一)
  20. 基于组态王6.55的实时数据采集助手V1.0

热门文章

  1. SqlServer安装出错解决办法
  2. 记 QT 应用开发中的一个二进制兼容性问题
  3. 简略图解:输入 url 到出现页面,浏览器做了什么?
  4. C++ STL : 模拟实现STL中的关联式容器unordered_map/unordered_set
  5. QUIC实战(三) letsencrypt证书申请和自动续期
  6. 低至4.7折起!戴尔OptiPlex商用台式机限时特惠,重磅来袭!
  7. Java集合框架:ArrayList
  8. 阿里技术官最新总结一份105道Java面试题小册,看完我惊呆了
  9. 音视频技术开发周刊 | 183
  10. 使用 pyenv 管理 Python 版本