Total Submit: 9 Accepted: 5
问题描述:
某石油公司计划建造一条由东向西的主输油管道。该管道要穿过一个有n 口油井的油
田。从每口油井都要有一条输油管道沿最短路经(或南或北)与主管道相连。如果给定n口油
井的位置,即它们的x 坐标(东西向)和y 坐标(南北向),应如何确定主管道的最优位置,
即使各油井到主管道之间的输油管道长度总和最小的位置?证明可在线性时间内确定主管道 的最优位置。
给定n 口油井的位置,计算各油井到主管道之间的输油管道最小长度总和。 输入的第1 行是油井数n,1<=n<=10000。接下来n 行是 油井的位置,每行2个整数x和y,-10000<=x,y<=10000。 输出油井到主管道之间的输油管道最小长度总和。 Sample Input 5 1 2 2 2 1 3 3 -2 3 3
Sample Output 6
众数问题
Time limit: 5000MS Memory limit: 32768K
Total Submit: 16 Accepted: 11
问题描述:
给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重
集S中重数最大的元素称为众数。 例如,S={1,2,2,2,3,5}。 多重集S的众数是2,其重数为3。
对于给定的由n 个自然数组成的多重集S,计算S的众数及其重数。 数据输入:
输入多重集S中元素个数n;接下来的n行中,每行有一个自然数。 结果输出:
输出第1行给出众数,第2 行是重数。 Sample Input 6 1 2 2 2 3 5
Sample Output 2 3
Source:
邮局选址问题
Time limit: 1000MS Memory limit: 32768K
Total Submit: 11 Accepted: 10
问题描述:
在一个按照东西和南北方向划分成规整街区的城市里,n 个居民点散乱地分布在不同的
街区中。用x坐标表示东西向,用y 坐标表示南北向。各居民点的位置可以由坐标(x,y)表示。
街区中任意2 点(x1,y1)和(x2,y2)之间的距离可以用数值| x1- x2|+| y1- y2|度量。
居民们希望在城市中选择建立邮局的最佳位置,使n个居民点到邮局的距离总和最小。
算法设计:
给定n 个居民点的位置,计算n 个居民点到邮局的距离总和的最小值。 数据输入:
输入的第1 行是居民点数n,1<=n<=10000。接下来n 行
是居民点的位置,每行2 个整数x 和y,-10000<=x,y<=10000。 结果输出:
输出的第1 行中的数是n 个居民点到邮局的距离总和的最小值。 Sample Input 5 1 2 2 2 1 3 3 -2 3 3
Sample Output 10
半数集问题
Time limit: 1000MS Memory limit: 32768K
Total Submit: 20 Accepted: 5
问题描述:
给定一个自然数n,由n 开始可以依次产生半数集set(n)中的数如下。 (1) n∈set(n);
(2) 在n 的左边加上一个自然数,但该自然数不能超过最近添加的数的一半; (3) 按此规则进行处理,直到不能再添加自然数为止。
例如,set(6)={6,16,26,126,36,136}。半数集set(6)中有6 个元素。 注意半数集是多重集。
算法设计:
对于给定的自然数n,计算半数集set(n)中的元素个数。 数据输入:
输入一个整数n。(0
结果输出:
输出半数集set(n)中的元素个数。 Sample Input 6
Sample Output 6
士兵站队问题
Time limit: 1000MS Memory limit: 32768K
Total Submit: 16 Accepted: 7
问题描述:
在一个划分成网格的操场上,n个士兵散乱地站在网格点上。网格点由整数坐标(x,y)表
示。士兵们可以沿网格边上、下、左、右移动一步,但在同一时刻任一网格点上只能有一名
士兵。按照军官的命令,士兵们要整齐地列成一个水平队列,即排列成
(x,y),(x+1,y),…,(x+n-1,y)。如何选择x 和y的值才能使士兵们以最少的总移动步数排成一列。
算法设计:
计算使所有士兵排成一行需要的最少移动步数。
数据输入:
输入士兵数n,1<=n<=10000。接下来n 行是
士兵的初始位置,每行2 个整数x 和y,-10000<=x,y<=10000。
结果输出:
输出的第1 行中的数是士兵排成一行需要的最少移动步数。 Sample Input 5 1 2 2 2 1 3 3 -2 3 3
Sample Output 8
有重复元素的排列问题
Time limit: 1000MS Memory limit: 32768K
Total Submit: 13 Accepted: 3
问题描述:
?设R={ r1 , r2 ,r3 }是要进行排列的n个元素。其中元素n r1 , r2 ... , rn 可能相同。试设计
一个算法,列出R的所有不同排列。
算法设计:
给定n以及待排列的n个元素。计算出这n个元素的所有不同排列。 数据输入:
输入的第1 行是元素个数n,1<=n<=500。接下来的1 行 是待排列的n个元素。
结果输出:
将计算出的n 个元素的所有不同排列输出(按字典序从小到大)。下一 行中的数是
排列总数。 Sample Input