通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"NOIP真题" 试卷中 NOIP第二十二届全国青少年信息学奥林匹克联赛初赛试题[2016提高组] 中有题目如下:
第1题
(交朋友)根据社会学研究表明,人们都喜欢找和自己身高相近的人做朋友。 现在有 n 名身高两两不相同的同学依次走入教室,调查人员想预测每个人在走入教室的瞬间最想和已经进入教室的哪个人做朋友。当有两名同学和这名同学的身高差一样时,这名同学会更想和高的那个人做朋友。比如一名身高为 1.80 米的同学进入教室时,有一名身高为 1.79 米的同学和一名身高为 1.81 米的同学在教室里,那么这名身高为1.80 米的同学会更想和身高为 1.81 米的同学做朋友。对于第一个走入教室的同学我们不做预测。
由于我们知道所有人的身高和走进教室的次序,所以我们可以采用离线的做法来解决这样的问题,我们用排序加链表的方式帮助每一个人找到在他之前进入教室的并且和他身高最相近的人。
#include <iostream> using namespace std; #define MAXN 200000 #define infinity 2147483647 int answer[MAXN], height[MAXN], previous[MAXN], next[MAXN]; int rank[MAXN]; int n; void sort(int l, int r) { int x = height[rank[(l + r) / 2]], i = l, j = r, temp; while (i <= j) { while (height[rank[i]] < x) i++; while (height[rank[j]] > x) j--; if ( ___(1)___ ) { temp = rank[i]; rank[i] = rank[j]; rank[j] = temp; i++; j--; } } if (i < r) sort(i, r); if (l < j) sort(l, j); } int main() { cin >> n; int i, higher, shorter; for (i = 1; i <= n; i++) { cin >> height[i]; rank[i] = i; } sort(1, n); for (i = 1; i <= n; i++) { previous[rank[i]] = rank[i - 1]; ___(2)___ ; } for (i = n; i >= 2; i--){ higher = shorter = infinity; if (previous[i] !=0) shorter = height[i] - height[previous[i]]; if (next[i] != 0) ___(3)___ ; if ( ___(4)___ ) answer[i] = previous[i]; else answer[i] = next[i]; next[previous[i]] = next[i]; ___(5)___ ; } for (i = 2; i <= n; i++) cout << i << ":" << answer[i]; return 0; }
所属试卷:NOIP第二十二届全国青少年信息学奥林匹克联赛初赛试题[2016提高组]
下列模板声明中,有语法错误的是
下面叙述错误的是。
编写代码获得用户输入的一个三角形的 3 条边长,计算三
阅读程序,写出程序运行结果。
以下叙述中正确的是。
算法应当具有的特性不包括( )。
有以下程序程序运行后的输出结果是。
有以下程序:程序运行后的输出结果是。
以下选项中不合法的标识符是。
读程序写结果1.2.#include<iostream
下面程序段运行结果是_________。
100Base-T 使用( )作为传输媒体
环型拓扑最适合的传输介质是( )
某计算机采用页式虚拟存储管理方式,按字节编址。CPU进
欲移除 bind 套件,应用下列那一指令( )
以192.168.6.0/255.255.255.0代
cron 后台常驻程序 (daemon) 用于:
MySQL中gbk字符集的默认校对规则是 。
MySQL客户端程序 _____ 可用于从mysqld
create user语句创建用户帐号时______
以下操作中,是用数据控制语言(DCL)实现的是( )。
返回字符串长度的函数是( )
耦合性有哪几种类型?其耦合度的顺序如何?[答案解析]低
C语言中一个函数由函数首部和_____两部分组成。
设k=(a=2,b=3,a*b),则k的值为_____
请编写函数fun,其功能是:在形参指针所指的4个整
结构化程序包括的基本控制结构是
函数fun的功能是:判断整数n是否是“完数”。当一
1)输入:4 3输出:( )2)输入:2017 101
在程序运行过程中,如果递归调用的层数过多,会因为( )
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2