主题:[原创]排序算法的经典应用实例
[color=FF0000]排序算法的经典应用实例[/color]
[color=FF00FF]说明:[/color] 本文摘自:[url=http://acm.5d6d.com]http://acm.5d6d.com[/url]
[例1] 由文件给出N个1到30000间无序正整数,其中1<=N<=10000,同一个正整数
可能会出现多次,出现次数最多的整数称为众数。
[编程任务]:求出该文件中的众数M及它出现的次数num。
[输入格式]:两行,第一行为正整数的个数N,第二行为各个正整数T。
[输出格式]:两行,第一行为众数M,第二行为众数M出现的次数num。
[样例输入]
10
2 3 4 5 3 3 4 5 6 3
[样例输出]
3
4
[例2] 某石油公司计划建造一条由东向西的主输油管道。该管道要穿过一个n口井
的油田,每口油井都要有一条输油管道沿最短路径(或南或北)与主管道相连,如
图所示:
===============================================================
|
| |
------|-----------|----------|------------|----------- <----主输油管道
| <---输油管道 |
。<---油井
y
i
i
i/------------>x
==============================================================
如果给定n口油井的位置,即它们的X坐标和Y坐标,应如何确定主管道的最优
位置,使各油井到主管道之间的输油管道长度总和为最小?
[编程任务]:求出主管道的最优位置。
[输入格式]:第一行,油井数量N;
第二到N+1行每行对应一个油井的坐标经X,Y。
[输出格式]:一行,最优位置的坐标(X,Y) 。
[例3] 有n 个人在一个水龙头前排队接水,每个人接水的时间Ti是互不相等的。
[编程任务]:找到一种这n个人排队的顺序,使他们平均等待时间达到最小。
[输入格式]:两行,第一行为:排队人数n ;
第二行为: 分别为每个人的等待时间Ti,每个数据用一空格隔开。
[输出格式]:一行,即为这n个人排队的最优顺序。
[例4] 现有n个正整数,n<=10000,要求出这n个正整数中的第k个最小整数(相
同大小的整数只计算一次),k<=1000,正整数均小于65535。
[编程任务]:求出第k个最小整数。
[输入格式]:第一行为:正整数的个数n和k ;
第二行为: n个整数,每个整数之间用空格隔开。
[输出格式]:第k 个最小正整数,若无解,则输出“NO ANSWERS” 。
[样例输入]:
10 3
1 3 3 7 2 5 1 2 4 6
[样例输出]:
3
[例5] 竞赛排名。某市组织一次中学生科技全能竞赛,每个选手要参加数学、物理
、天文、地理、生物、计算机和英语共八项竞赛,最后综合八项竞赛的成绩排出总
名次。选手编号依次为:1,2,. . . ,n(其中n为参赛总人数)。
设xij表示编号为i的选手第j项竞赛成绩( 1<= j <= n , 1 <= j <= 8 )。其它
指标如下:
(1)第j项竞赛的平均分 avg(j) (其中1<= j <= 8 );
(2)选手i的总分sum(i) ;
[编程任务]:做出一个排名表。
[url]http://acm.5d6d.com[/url]
[color=FF00FF]说明:[/color] 本文摘自:[url=http://acm.5d6d.com]http://acm.5d6d.com[/url]
[例1] 由文件给出N个1到30000间无序正整数,其中1<=N<=10000,同一个正整数
可能会出现多次,出现次数最多的整数称为众数。
[编程任务]:求出该文件中的众数M及它出现的次数num。
[输入格式]:两行,第一行为正整数的个数N,第二行为各个正整数T。
[输出格式]:两行,第一行为众数M,第二行为众数M出现的次数num。
[样例输入]
10
2 3 4 5 3 3 4 5 6 3
[样例输出]
3
4
[例2] 某石油公司计划建造一条由东向西的主输油管道。该管道要穿过一个n口井
的油田,每口油井都要有一条输油管道沿最短路径(或南或北)与主管道相连,如
图所示:
===============================================================
|
| |
------|-----------|----------|------------|----------- <----主输油管道
| <---输油管道 |
。<---油井
y
i
i
i/------------>x
==============================================================
如果给定n口油井的位置,即它们的X坐标和Y坐标,应如何确定主管道的最优
位置,使各油井到主管道之间的输油管道长度总和为最小?
[编程任务]:求出主管道的最优位置。
[输入格式]:第一行,油井数量N;
第二到N+1行每行对应一个油井的坐标经X,Y。
[输出格式]:一行,最优位置的坐标(X,Y) 。
[例3] 有n 个人在一个水龙头前排队接水,每个人接水的时间Ti是互不相等的。
[编程任务]:找到一种这n个人排队的顺序,使他们平均等待时间达到最小。
[输入格式]:两行,第一行为:排队人数n ;
第二行为: 分别为每个人的等待时间Ti,每个数据用一空格隔开。
[输出格式]:一行,即为这n个人排队的最优顺序。
[例4] 现有n个正整数,n<=10000,要求出这n个正整数中的第k个最小整数(相
同大小的整数只计算一次),k<=1000,正整数均小于65535。
[编程任务]:求出第k个最小整数。
[输入格式]:第一行为:正整数的个数n和k ;
第二行为: n个整数,每个整数之间用空格隔开。
[输出格式]:第k 个最小正整数,若无解,则输出“NO ANSWERS” 。
[样例输入]:
10 3
1 3 3 7 2 5 1 2 4 6
[样例输出]:
3
[例5] 竞赛排名。某市组织一次中学生科技全能竞赛,每个选手要参加数学、物理
、天文、地理、生物、计算机和英语共八项竞赛,最后综合八项竞赛的成绩排出总
名次。选手编号依次为:1,2,. . . ,n(其中n为参赛总人数)。
设xij表示编号为i的选手第j项竞赛成绩( 1<= j <= n , 1 <= j <= 8 )。其它
指标如下:
(1)第j项竞赛的平均分 avg(j) (其中1<= j <= 8 );
(2)选手i的总分sum(i) ;
[编程任务]:做出一个排名表。
[url]http://acm.5d6d.com[/url]