
基础算法——排序
Alex_McAvoy
想要成为渔夫的猎手
展开
-
基础算法 —— 排序算法
【概述】排序是经常涉及到的问题,在实际应用中,大多不需要写一个排序函数,使用 STL 内置的 sort 即可关于排序的具体方法:点击这里【例题】1.与模拟的结合Game of Lines(POJ-3668):点击这里 谁拿了最多奖学金(洛谷-P1051):点击这里 奖学金(洛谷-P1093):点击这里 同题:奖学金(信息学奥赛一本通-T1179):点击这里 出现次数超过...原创 2018-02-08 01:59:49 · 1699 阅读 · 0 评论 -
Collecting Packages(CF-1294B)
Problem DescriptionThere is a robot in a warehouse and n packages he wants to collect. The warehouse can be represented as a coordinate grid. Initially, the robot stays at the point (0,0). The i-th...原创 2020-01-24 15:38:20 · 1006 阅读 · 0 评论 -
单词排序(信息学奥赛一本通-T1185)
【题目描述】输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照字典序输出这些单词,要求重复的单词只输出一次。(区分大小写)【输入】一行单词序列,最少1个单词,最多100个单词,每个单词长度不超过50,单词之间用至少1个空格间隔。数据不含除字母、空格外的其他字符。【输出】按字典序输出这些单词,重复的单词只输出一次。【输入样例】She wants to go ...原创 2018-04-22 21:33:54 · 10141 阅读 · 5 评论 -
出现次数超过一半的数(信息学奥赛一本通-T1186)
【题目描述】给出一个含有n(0 < n ≤ 1000)个整数的数组,请找出其中出现次数超过一半的数。数组中的数大于-50且小于50。【输入】第一行包含一个整数n,表示数组大小;第二行包含n个整数,分别是数组中的每个元素,相邻两个元素之间用单个空格隔开。【输出】如果存在这样的数,输出这个数;否则输出no。【输入样例】31 2 2【输出样例】2【...原创 2018-04-22 21:35:12 · 10170 阅读 · 6 评论 -
不重复地输出数(信息学奥赛一本通-T1245)
【题目描述】输入n个数,从小到大将它们输出,重复的数只输出一次。保证不同的数不超过500个。【输入】第一行是一个整数n。1 ≤ n ≤ 100000。之后n行,每行一个整数。整数大小在int范围内。【输出】一行,从小到大不重复地输出这些数,相邻两个数之间用单个空格隔开。【输入样例】52 4 4 5 1【输出样例】1 2 4 5【源程序】#in...原创 2018-05-18 17:12:14 · 3248 阅读 · 0 评论 -
输出前k大的数(信息学奥赛一本通-T1235)
【题目描述】给定一个数组,统计前k大的数并且把这k个数从大到小输出。【输入】第一行包含一个整数n,表示数组的大小。n < 100000。第二行包含n个整数,表示数组的元素,整数之间以一个空格分开。每个整数的绝对值不超过100000000。第三行包含一个整数k,k < n。【输出】从大到小输出前k大的数,每个数一行。【输入样例】104 5 6 9 ...原创 2018-05-17 21:43:47 · 5095 阅读 · 4 评论 -
Exploration(POJ-3618)
Problem DescriptionBessie is traveling on a road teeming with interesting landmarks. The road is labeled just like a number line, and Bessie starts at the "origin" (x = 0). A total of N (1 ≤ N ≤ 50...原创 2018-06-02 10:34:45 · 302 阅读 · 0 评论 -
小鱼比可爱(洛谷-P1428)
题目描述人比人,气死人;鱼比鱼,难死鱼。小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度。参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱程度,很显然整数越大,表示这只鱼越可爱,而且任意两只鱼的可爱程度可能一样。由于所有的鱼头都朝向左边,所以每只鱼只能看见在它左边的鱼的可爱程度,它们心里都在计算,在自己的眼力范围内有多少只鱼不如自己可爱呢。请你...原创 2018-02-04 03:28:30 · 2509 阅读 · 0 评论 -
珠心算测验(洛谷-P2141)
题目描述珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和?最近老师出了一些测验题,请你帮忙求出答案。输入输...原创 2018-02-04 03:30:38 · 1484 阅读 · 0 评论 -
Game of Lines(POJ-3668)
Problem DescriptionFarmer John has challenged Bessie to the following game: FJ has a board with dots marked at N (2 ≤ N ≤ 200) distinct lattice points. Dot i has the integer coordinates Xi and Yi (...原创 2018-06-08 00:08:06 · 427 阅读 · 0 评论 -
Obtaining the String(CF-1015B)
Problem DescriptionYou are given two strings s and t. Both strings have length nn and consist of lowercase Latin letters. The characters in the strings are numbered from 1 to n.You can successive...原创 2018-08-06 10:49:03 · 474 阅读 · 0 评论 -
逆序对(洛谷-P1908)
题目描述猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中ai>aj且i<j的有序对。知道这概念后,他们就比赛谁先算出给定的一段正整数序列中逆序对的数目。输入输出格式输入格式:第一行...原创 2018-07-05 21:07:55 · 834 阅读 · 0 评论 -
光荣的梦想(信息学奥赛一本通-T1328)
【题目描述】Prince对他在这片大陆上维护的秩序感到满意,于是决定启程离开艾泽拉斯。在他动身之前,Prince决定赋予King_Bette最强大的能量以守护世界、保卫这里的平衡与和谐。在那个时代,平衡是个梦想。因为有很多奇异的物种拥有各种不稳定的能量,平衡瞬间即被打破。KB决定求助于你,帮助他完成这个梦想。一串数列即表示一个世界的状态。平衡是指这串数列以升序排列。而从一串无序数列到...原创 2018-05-17 21:40:40 · 4583 阅读 · 0 评论 -
求排列的逆序数(信息学奥赛一本通-T1237)
【题目描述】在Internet上的搜索引擎经常需要对信息进行比较,比如可以通过某个人对一些事物的排名来估计他(或她)对各种不同信息的兴趣,从而实现个性化的服务。对于不同的排名结果可以用逆序来评价它们之间的差异。考虑1,2,…,n的排列i1,i2,…,in,如果其中存在j,k,满足j<k,且ij>ik,那么就称(ij,ik)是这个排列的一个逆序。一个排列含有逆序的个数称为这...原创 2018-05-17 21:50:25 · 5104 阅读 · 0 评论 -
Cow Laundry(POJ-2188)
Problem DescriptionThe cows have erected clothes lines with N (1 <= N <= 1000) wires upon which they can dry their clothes after washing them. Having no opposable thumbs, they have thoroughly...原创 2019-06-01 19:11:34 · 225 阅读 · 0 评论 -
Little Elephant and Problem (CF-220A)
Problem DescriptionThe Little Elephant has got a problem — somebody has been touching his sorted by non-decreasing array a of length n and possibly swapped some elements of the array.The Little E...原创 2019-07-25 08:53:45 · 284 阅读 · 0 评论 -
Reading(CF-234B)
Problem DescriptionVasya is going to the Olympics in the city Ntown by train. The boy wants to read the textbook to prepare for the Olympics. He counted that he needed k hours for this. He also fou...原创 2019-07-31 09:19:19 · 702 阅读 · 0 评论 -
整数奇偶排序(信息学奥赛一本通-T1181)
【题目描述】给定10个整数的序列,要求对其重新排序。排序要求:奇数在前,偶数在后; 奇数按从大到小排序; 偶数按从小到大排序。【输入】输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于100。【输出】按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。【输入样例】4 7 3 13 11 12 0 47 34 ...原创 2018-04-21 14:46:52 · 7619 阅读 · 3 评论 -
病人排队(信息学奥赛一本通-T1183)
【题目描述】病人登记看病,编写一个程序,将登记的病人按照以下原则排出看病的先后顺序:1.老年人(年龄 >= 60岁)比非老年人优先看病。2.老年人按年龄从大到小的顺序看病,年龄相同的按登记的先后顺序排序。3.非老年人按登记的先后顺序看病。【输入】第1行,输入一个小于100的正整数,表示病人的个数;后面按照病人登记的先后顺序,每行输入一个病人的信息,包括:一个长度...原创 2018-04-22 21:31:22 · 9573 阅读 · 2 评论 -
瑞士轮(洛谷-P1309)
题目背景在双人对决的竞技性比赛,如乒乓球、羽毛球、国际象棋中,最常见的赛制是淘汰赛和循环赛。前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高。后者的特点是较为公平,偶然性较低,但比赛过程往往十分冗长。本题中介绍的瑞士轮赛制,因最早使用于1895年在瑞士举办的国际象棋比赛而得名。它可以看作是淘汰赛与循环赛的折中,既保证了比赛的稳定性,又能使赛程不至于过长。题目描述2*N 名编号...原创 2018-04-10 23:39:35 · 1039 阅读 · 0 评论 -
奖学金(洛谷-P1093)
题目描述某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学 排在前面,这样,每个学生的排序是唯一确定的。任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五...原创 2018-04-10 23:35:44 · 1113 阅读 · 0 评论 -
谁拿了最多奖学金(洛谷-P1051)
题目描述某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同:1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得;2) 五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得;3) 成绩优秀奖,每人200...原创 2018-04-10 23:31:42 · 872 阅读 · 0 评论 -
魔法照片(洛谷-P1583)
题目描述一共有n(n≤20000)个人(以1--n编号)向佳佳要照片,而佳佳只能把照片给其中的k个人。佳佳按照与他们的关系好坏的程度给每个人赋予了一个初始权值W[i]。然后将初始权值从大到小进行排序,每人就有了一个序号D[i](取值同样是1--n)。按照这个序号对10取模的值将这些人分为10类。也就是说定义每个人的类别序号C[i]的值为(D[i]-1) mod 10 +1,显然类别序号的取值...原创 2018-04-10 23:28:06 · 572 阅读 · 0 评论 -
宇宙总统(洛谷-P1781)
题目描述地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统。输入输出格式输入格式:第一行为一个整数n,代表竞选总统的人数。接下来有n行,分别为第一个候选人到第n个候选人的票数。输出格式:共两行,第一行是一个整数m,为当上总统的人的号数。第二行是当上总统的人的选票。输入输出样例...原创 2018-04-10 22:52:44 · 973 阅读 · 0 评论 -
分数线划定(洛谷-P1068)
题目描述世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入...原创 2018-04-10 22:52:34 · 657 阅读 · 0 评论 -
【模板】快速排序(洛谷-P1177)
题目描述利用快速排序算法将读入的N个数从小到大排序后输出。快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++选手请不要试图使用STL,虽然你可以使用sort一遍过,但是你并没有掌握快速排序算法的精髓。)输入输出格式输入格式:输入的第1行为一个正整数N,第2行包含N个空格隔开的正整数a[i],为你需要进行排序的数,...原创 2018-04-10 22:49:46 · 2559 阅读 · 5 评论 -
车厢重组(信息学奥赛一本通-T1310)
【题目描述】在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转180度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。他退休后,火车站决定将这一工作自动化,其中一项重要的工作是编一个程序,输入初始的车厢顺序,计算最少用多少步就能将车厢排序。【...原创 2018-04-21 14:30:40 · 7513 阅读 · 4 评论 -
求逆序对(信息学奥赛一本通-T1311)
【题目描述】给定一个序列a1,a2,…,an,如果存在i<j并且ai>aj,那么我们称之为逆序对,求逆序对的数目。【输入】第一行为n,表示序列长度,接下来的n行,第i+1行表示序列中的第i个数。【输出】所有逆序对总数。【输入样例】43232【输出样例】3【源程序】#include<iostream>#include...原创 2018-04-21 14:32:11 · 9467 阅读 · 2 评论 -
谁考了第k名(信息学奥赛一本通-T1176)
【题目描述】在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩。【输入】其后有n行数据,每行包括一个学号(整数)和一个成绩(浮点数),中间用一个空格分隔。【输出】输出第k名学生的学号和成绩,中间用空格分隔。(注:请用%g输出成绩)【输入样例】5 390788001 67.890788002 90.390788003 6...原创 2018-04-21 14:33:36 · 13604 阅读 · 0 评论 -
奇数单增序列(信息学奥赛一本通-T1177)
【题目描述】给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。【输入】第1行为 N;第2行为 N 个正整数,其间用空格间隔。【输出】增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。【输入样例】101 3 2 6 5 4 9 8 7 10【输出样例】1,3,5,7,9【源程序】#include<...原创 2018-04-21 14:39:47 · 8420 阅读 · 0 评论 -
成绩排序(信息学奥赛一本通-T1178)
【题目描述】给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。【输入】第一行为n (0 < n < 20),表示班里的学生数目;接下来的n行,每行为每个学生的名字和他的成绩, 中间用单个空格隔开。名字只包含字母且长度不超过20,成绩为一个不大于100的非负整数。【输出】把成绩单按分数从高到低的顺序进行排序并输出,...原创 2018-04-21 14:41:20 · 12526 阅读 · 1 评论 -
奖学金(信息学奥赛一本通-T1179)
【题目描述】某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前...原创 2018-04-21 14:44:03 · 8355 阅读 · 0 评论 -
合影效果(信息学奥赛一本通-T1182)
【题目描述】小云和朋友们去爬香山,为美丽的景色所陶醉,想合影留念。如果他们站成一排,男生全部在左(从拍照者的角度),并按照从矮到高的顺序从左到右排,女生全部在右,并按照从高到矮的顺序从左到右排,请问他们合影的效果是什么样的(所有人的身高都不同)?【输入】第一行是人数n(2 ≤ n ≤ 40,且至少有1个男生和1个女生)。后面紧跟n行,每行输入一个人的性别(男male或女female)...原创 2018-04-21 14:45:40 · 7861 阅读 · 2 评论 -
分数线划定(信息学奥赛一本通-T1180)
【题目描述】世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150150划定,即如果计划录取mm名志愿者,则面试分数线为排名第m×150m×150(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线...原创 2018-04-21 14:48:25 · 6920 阅读 · 1 评论