通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"NOIP真题" 试卷中 NOIP第十四届全国青少年信息学奥林匹克联赛初赛试题[2008提高组] 中有题目如下:
第1题
( 找第 k 大的数 ) 给定一个长度为 1,000,000 的无序正整数序列,以及另一个数 n(1<=n<=1000000) ,接下来以类似快速排序的方法找到序列中第 n 大的数 (关于第 n 大 的数:例如序列 {1 ,2, 3, 4,5,6} 中第 3 大的数是 4)。
#include <stdlib.h> #include <stdio.h> int a[1000001],n,ans = -1; void swap(int *a,int *b) { int c; c = *a; *a = *b; *b = c; } int FindKth(int left, int right, int n) { int tmp,value,i,j; if (left == right) return left; tmp = rand()% (right - left) + left; swap( &a[tmp], &a[left] ); value = ① i = left; j = right; while (i < j) { while (i < j && ② ) j --; if (i < j) {a[i] = a[j]; i ++;} else break; while (i < j && ③ ) i ++; if (i < j) {a[j] = a[i]; j - -;} else break; } ④ if (i < n) return FindKth( ⑤ ); if (i > n) return ⑥ return i; } int main() { int i; int m = 1000000; for (i = 1;i <= m;i ++) scanf("%d", &a[i]); scanf("%d", &n); ans = FindKth(1,m,n); printf("%d\n", a[ans]); return 0; }
所属试卷:NOIP第十四届全国青少年信息学奥林匹克联赛初赛试题[2008提高组]
如果表达式-x/y中的“-”和“/”是作为友元函数重载
对鼠标单击按钮操作进行事件处理的接口是( )。
以下选项中有语法错误的是。
有以下程序:程序运行后的输出结果是( )。
现有语句请问要找出ivector之中大于2的第一个元素
表达式(i**2 for i in range(100
列表对象的append方法属于原地操作,用于在列表
已知字典 x={i:str(i+3) for i in
已知列表x中包含超过5个以上的元素,那么表达式x=x[
RPM有5种基本操作模式,即:______
用于文件系统直接修改文件权限管理命令为:( )
设C语言程序my.cA. 生成目标文件my.o的命令是
进行字符串查找,使用( )命令。
Linux文件系统中每个文件用_______来标识。
当使用mount进行设备或者文件系统挂载的时候,需要用
用SELECT进行模糊查询时,可以使用 或 等
存储引擎事务是不安全的,且不支持外键,但它占用空
在数据库的三级模式结构中,模式只有 个
MySql数据库中具体实现备份数据库的方法很多,可以分
删除student表上xm_index索引的语句是 _
基本表属于三级模式中的( )
快速排序总比简单排序快。
C语言的三种基本结构是_____结构、选择结构、循环结
continue语句用于终止循环体的本次执行。
功能:编写函数fun(int m)求1000以内(不包
假设输入的x是不超过1000的自然数,第24行的"f[
(匠人的自我修养)一个匠人决定要学习 n个新技术,要想
在 NOI 系列赛事中参赛选手必须使用由承办单位统一提
输入:4 61 2 102 3 203 4 304 1
(最短路线)某城市 的街道是一个很规整的矩形网格(见下
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2