随笔分类 -  排序算法

1 2 下一页

各类排序算法
字典序
摘要:字典序dict.pas【问题描述】输入文件中包含几行数据,每行又包含多个正整数。你的任务把这些数据(每行数据看作一个整体)按字典序进行排序。这里的字典序是指,先按每行最左边的数进行排序,若有相同的则比较它们的第二个数,以些类推只到比较出大小。例如下面的数据:14 38 11 8927 3427 12 342792 2 3 117 2按此字典排序后的结果为:14 38 11 8917 22727 12 3427 3492 2 3 1【输入格式】dict.in输入的第一行是一个整数N(1=0 do begin Inc(j); A[I, j] := x; Read(x); End; A[I, 0] 阅读全文

posted @ 2013-12-31 15:33 生活不变心在变 阅读(583) 评论(0) 推荐(0)

分数线划定
摘要:分数线划定score.pas【问题描述】世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。【输入格式】score.in第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用一个空格隔开,其中n 表示报名参加笔试的选 阅读全文

posted @ 2013-12-31 15:32 生活不变心在变 阅读(347) 评论(0) 推荐(0)

月考
摘要:月考mtest.pas【问题描述】在上次的月考中Bugall同学违反了考场纪律还吃了处分,更可气的是在第二天的校会时 间学校就此事做了全校通报。现已知在当天校会时间有总共N个同学听到了有关Bugall的处分决定。Bugall同学在铁一有M个朋友,这M个人中有的可能听到了当天的处分决定,有的可能没有听到,现在Bugall同学想知道他有几个朋友听到了当天的处分通报。【输入格式】mtest.in第一行为一个整数N,从第2行到N+1行,每行用一个长度不超过200的字符串表示 一个人的名字。(0<n<=100000)第N+2行为一个整数M,从第N+3行到N+M+2行,每行用一个长度不超过20 阅读全文

posted @ 2013-12-12 22:24 生活不变心在变 阅读(258) 评论(0) 推荐(0)

象棋比赛
摘要:象棋比赛chess.pas【问题描述】有N个人要参加国际象棋比赛,该比赛要进行K场对弈。每个人最多参加两场对弈,最少参加零场对弈。每个人都有一个与其他人都不相同的等级(用一个正整数来表示)。在对弈中,等级高的人必须用黑色的棋子,等级低的人必须用白色的棋子。每个人最多只能用一次黑色的棋子和一次白色的棋子。为了增加比赛的客观度,观众希望K场对弈中双方的等级差的总和最小。比如有7个选手,他们的等级分别是 30,1 7,26,41,19,38,18,要进行3场比赛。最好的安排是Player 2 vs Player 7,Player7 vs Player 5,Player 6 vs P1ayer 4,此 阅读全文

posted @ 2013-12-12 22:22 生活不变心在变 阅读(410) 评论(0) 推荐(0)

排座椅
摘要:排座椅seats.pas【问题描述】上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳。同学们在教室中坐成了M行N列,坐在第i行第j列的同学的位置是(i,j),为了方便同学们进出,在教室中设置了K条横向的通道,L条纵向的通道。于是,聪明的小雪想到了一个办法,或许可以减少上课时学生交头接耳的问题:她打算重新摆放桌椅,改变同学们桌椅间通道的位置,因为如果一条通道隔开了两个会交头接耳的同学,那么他们就不会交头接耳了。请你帮忙给小雪编写一个程序,给出最好的通道划分方案。在 阅读全文

posted @ 2013-12-12 22:21 生活不变心在变 阅读(310) 评论(0) 推荐(0)

士兵排队
摘要:士兵排队soldier.pas【问题描述】在XXX国家,有N个处于不同位置的士兵。该国上的地方都用两个坐标(X,Y)来表示。士兵能进行一次移动,每个士兵都可向上、向下、向左、或向右移动一个单位长,这样他就能把自己的X或Y改变1或-1。士兵们想进入一个水平线,彼此靠近,这样他们的最后位置就是(X,Y)、(X+1,Y)、…、(X+N,Y)。水平线上的士兵的最后顺序以及整数X和Y,都是任意的。现在目标是求如此配置士兵的最少移动数。两个或两个以上的士兵在同一时间不处于同一位置。【输入格式】soldier.in输入文件的第一行含有一个整数N,1 <= N <=10000,N为士兵的数量。输入 阅读全文

posted @ 2013-12-12 22:12 生活不变心在变 阅读(381) 评论(0) 推荐(0)

水王争霸
摘要:水王争霸bbs.pas【问题描述】众所周知,论坛上有很多水王,他们的发贴数是如此之多,以至于必须要用高精度数才能保存。为了迎接国庆,论坛决定举行一次水王争霸赛,比赛的规则是将这些水王截止到20013年11月22日23时59分59秒这一刻所发的总贴数从大到小进行排序。每个水王当然都想取得尽量靠前的名次,所以他们竭尽全力,不择手段地进行灌水。终于,激动人心的一刻到来了,20013年11月23日0时0分0秒,你作为裁判得到了每个水王的发贴数,现在,你的任务是公正地把这些水王按照发贴数从大到小进行排序。【输入格式】bbs.in输入的第一行是一个1到1000的整数N,表示总共有N位水王参加了争霸赛。以下 阅读全文

posted @ 2013-12-12 22:11 生活不变心在变 阅读(680) 评论(0) 推荐(0)

区间
摘要:区间region.pas【问题描述】给定n个闭区间 [ai,bi], i=1,2,...,n. 这些区间的和可以用两两不相交的闭区间的和来表示。你的任务是找到这样的区间数目最少的表示,且把它们按升序的方式写到输出文件中。当且仅当a <= b < c <= d时,区间[a; b],[c; d]才是升序写一个程序完成以下任务:读取区间,计算出满足上述条件的两两不相交的区间,把找到的区间按升序输出。【输入格式】region.in第一行只有一个数n, 3 <= n <= 50000,代表区间数.第I+1行有两个数ai,bi,之间用一个空格隔开,分别表示区间[ai,bi]的 阅读全文

posted @ 2013-12-12 22:08 生活不变心在变 阅读(371) 评论(0) 推荐(0)

管道铺设
摘要:管道铺设pipe.pas【问题描述】石油公司计划建造一条由南向北的主输油管道。该管道要穿过一个有n 口油井的油田。从每口油井都要有一条输油管道沿最短路经(或东或西)与主管道相连。如果给定n口油井的位置,即它们的x 坐标(东西向)和y 坐标(南北向),应如何确定主管道的最优位置,使各油井到主管道之间的输油管道长度总和最小。现在给定n 口油井的位置,请计算各油井到主管道之间的输油管道最小长度总和。【输入格式】pipe.in文件的第1行是油井数n,1≤n≤10000。接下来n行是油井的位置,每行2个整数x和y,-10000≤x,y≤10000。【输出格式】pipe.out只有一个数,表示油井到主管道 阅读全文

posted @ 2013-12-12 22:07 生活不变心在变 阅读(436) 评论(0) 推荐(0)

奖学金
摘要:奖学金Scholarship.pas【问题描述】某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前5名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分) 阅读全文

posted @ 2013-12-12 21:52 生活不变心在变 阅读(241) 评论(0) 推荐(0)

数字排序
摘要:数字排序numSort.pas【问题描述】输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。你的任务是对这些分割得到的整数依从小到大的顺序排序。【输入格式】numSort.in输入数据包含多行,每行为一串数字(数字之间没有空格),这行数字的长度不大于106。输入数据保证:分割得到的非负整数不会大于109;输入数据不可能全由‘5’组成。处理到文件结束为止。【输出格式】numSort.out对每行数字串进行分割并从小到大排序,输出排序后的结 阅读全文

posted @ 2013-12-12 21:51 生活不变心在变 阅读(673) 评论(0) 推荐(0)

积木分发
摘要:积木分发toybrick.pas【问题描述】歌手Pancakes到幼儿园跟小朋友玩,她到达的时候小朋友们正在争积木,小朋友都想要更多的积木砌一个自己喜欢的图形,砌完就可以和Pancakes合照。同时,Pancakes手上还有一些积木,她可以把手上的这些积木全部给一个小朋友,然后等该小朋友砌完后就可以收回所发的积木和该小朋友原先手上的积木。但她不知道能否让所有的小朋友都和她合照,聪明的你可以帮助她吗?【输入格式】toybrick.in输入包含多个数据。每个数据的第1行是两个正整数n和s,1≤n≤100000,1≤s≤100000,表示一共有n位小朋友,Pancakes手上有s块积木。以下有n行, 阅读全文

posted @ 2013-12-12 21:49 生活不变心在变 阅读(273) 评论(0) 推荐(0)

突击战
摘要:突击战commando.pas【问题描述】你有n个部下,每个部下需要完成一项任务。第i个部下需要你花Bi分钟交代任务,然后他会立刻独立地,无间断的执行Ji分钟后完成任务。你需要交代任务的顺序,使得所有的任务尽早执行完毕。注意,不能同时给2个部下交代任务,但是部下可以同时执行各自的任务。【输入格式】commando.in输入数据包括多组数据,每组数据的第一行为部下的个数N(1≤N≤1000);以下N行有2个正整数B和J(1≤B≤1000,1≤J≤1000),即交代任务的时间和执行任务的时间。输入结束标志符为N=0。【输出格式】commando.out对于每组数据,输出(以第i组数据为例):Cas 阅读全文

posted @ 2013-12-12 21:45 生活不变心在变 阅读(411) 评论(0) 推荐(0)

挤奶时间
摘要:挤奶时间milkprod.pas【问题描述】贝茜是一只非常努力工作的奶牛,她总是专注于提高自己的产量。为了产更多的奶,她预计好了接下来的N (1 ≤ N ≤ 1,000,000)个小时,标记为0..N-1。Farmer John 计划好了 M (1 ≤ M ≤ 1,000) 个可以挤奶的时间段。每个时间段有一个开始时间(0 ≤ 开始时间 ≤ N), 和一个结束时间 (开始时间 < 结束时间 ≤ N), 和一个产量 (1 ≤ 产量 ≤ 1,000,000) 表示可以从贝茜挤奶的数量。Farmer John 从分别从开始时间挤奶,到结束时间为止。每次挤奶必须使用整个时间段。但即使是贝茜也有她 阅读全文

posted @ 2013-12-12 21:41 生活不变心在变 阅读(590) 评论(0) 推荐(0)

连接多位数
该文被密码保护。

posted @ 2013-12-11 21:05 生活不变心在变 阅读(1) 评论(0) 推荐(0)

线性存储问题
该文被密码保护。

posted @ 2013-12-09 13:02 生活不变心在变 阅读(1) 评论(0) 推荐(0)

快速排序(双关键字)
该文被密码保护。

posted @ 2012-11-07 22:43 生活不变心在变 阅读(8) 评论(0) 推荐(0)

瑞士轮
该文被密码保护。

posted @ 2012-11-02 23:16 生活不变心在变 阅读(32) 评论(0) 推荐(0)

Electoral Rolls Revision
该文被密码保护。

posted @ 2012-11-02 22:51 生活不变心在变 阅读(29) 评论(0) 推荐(0)

Dominoes Game
摘要:多米诺骨牌游戏,有N个骨牌,把它们摆在一条直线上,已知它们的位置和高度,骨牌可以向左右两边倒,若它可以碰到附近的骨牌(若它倒下去,只能达到附近骨牌位置时,不算能打倒,即:这里的骨牌是没有厚度的)问:任意推倒一块骨牌,最多能打倒多少张骨牌! 阅读全文

posted @ 2012-11-02 22:00 生活不变心在变 阅读(345) 评论(0) 推荐(0)

1 2 下一页

导航