北理工C语言题,我是不会,大神来编一下哈
题目描述:在BIT的网络教室里,流传着一个传奇人物的传说:PQ大神会在他存在的所有的课程里牢牢占据第一名的位置(即使PQ大神起初有意放水,也会在后来因为实力的巨大差距而重...
题目描述:在BIT的网络教室里,流传着一个传奇人物的传说:PQ大神会在他存在的所有的课程里牢牢占据第一名的位置(即使PQ大神起初有意放水,也会在后来因为实力的巨大差距而重回第一)。而事实也确是如此,无论是在C语言教室还是在ACM教室,PQ大神都占据了第一名的宝座。而大神是如何成为传奇的呢?答案很简单,PQ大神沉溺在在各种OJ(ONLINE JUDGE)上刷题虐人的愉悦感中。最近,PQ大神发现了几个新的OJ,里面有成千上网的题目。由于PQ大神的实力太强,所以他喜欢挑战高难度的题目。同时,PQ大神的高智商让他不屑于去写难度低于100的水题。 PQ大神在扫了几眼后(其实大神只用扫一眼就够了,但是大神为了保持自己的亲和性,对外宣称看了几眼,大神喜欢自称渣渣也是这个原因吧),给出了每道题的难度值(PQ大神只用看一眼就知道难度值和解法,这大概就是他被称为大神的原因之一)。现在,作为大神的的仰慕者,你需要为大神写一个程序,大神会告诉你题号和难度值,你来为大神提供刷题的顺序。(因为判断刷题顺序的排序程序的难度<100,所以大神是不想写这种程序的)。输入:(文件输入) 输入文件名称输入文件的格式如下:第一行输入一个整数T, 表示一共有T个案例(T <= 50)。之后的每个案例,第一行输入一个整数N,表示一共有N道题。接下来的N行中,分别是两个整数,第一个整数代表题号(题号<=100000),第二个整数代表题目难度(题目难度<=10000),之间用空格隔开。例如,输入文件1如下: 2 6 4 36 9 2 7 100 1 19 2 79 30 131 1 4 99 输出:对于每一个案例,按难度顺序输出题目的名字(不同题目名字用换行分隔,若难度相同,则按字典序输出)。每两个案例间空一行。如果所有的题目难度都<100,则输出”This OJ is too easy for PQ Dashen!” 友情提示:由于OJ上的题目数量实在是太多了(这么多的题目大概也只有PQ大神能写完吧),大神又懒得等太久(浪费PQ大神的时间是要忏悔的),所以,冒泡排序等时间复杂度为n^2的程序会让大神应等待时间过长而让你TLE掉<没错大神还有判断运行时间的功能>所以这时候,我们需要一种效率更高的排序:快速排序。快速排序的思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小(简单的说,他的实现就是设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用第1个数据)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序)然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。也许在你的代码前加/*ORZ PQ DaShen*/会让机器的运行速度突然翻倍,一定的几率让本身会TLE的题目AC掉,但出于RP的不确定性,如果你TLE了,请尝试用快速排序为大神写这个程序。测试用例 2输入in2.txt↵ 输出 2↵ 8↵ 32↵ 4↵ 测试用例 1以文本方式显示 in1.txt↵ 30 7 This OJ is too easy for PQ Dashen
展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询