2016蓝桥杯算法训练——区间k大数查询
2016-02-16 15:14
197 查看
算法训练 区间k大数查询
问题描述
给定一个序列,每次询问序列中第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。
代码:
问题描述
给定一个序列,每次询问序列中第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。
代码:
import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) throws Exception { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] a=new int[1001]; int[] b=new int[1001]; for(int i=0;i<n;i++){ a[i]=in.nextInt(); } int m=in.nextInt(); for(int i=0;i<m;i++){ int l=in.nextInt(); int r=in.nextInt(); int k=in.nextInt(); int[] c=new int[r-l+1]; int u=0; for(int j=l-1;j<=r-1;j++){ c[u++]=a[j]; } for(int x=0;x<c.length-1;x++) for(int y=x+1;y<c.length;y++){ if(c[x]<c[y]){ int temp; temp=c[y]; c[y]=c[x]; c[x]=temp; } } System.out.println(c[k-1]); } } }
相关文章推荐
- Android_自定义HorizontalScrollView实现滑动子控件大小伸缩
- iOS 编码规范
- 能被2、3、4、5、6、7、8、9 等数整除的数的特征
- LeetCode "Increasing Triplet Subsequence" !!
- 基于 Python 和 Scikit-Learn 的机器学习介绍
- https生成证书及TOMCAT配置
- Android Studio 常用快捷键
- Java-强引用、软引用、弱引用、虚引用详解
- java web点击链接用js判断用户是否已经登录 (js获取session及判断是否为空)
- 深入了解MyBatis返回值
- UVA 10816 - Travel in Desert(最小生成树+最短路)
- iOS: 使用故事板和xib设置按钮圆角方法
- Java基础高级二(多线程)
- TinyOS视频第九集内容介绍
- 1019. General Palindromic Number (20)
- mongodb
- uvaoj-156:反片语
- js 局部打印
- 参数以json格式上传
- Android之TypedArray 为什么需要调用recycle()