ADVERT.IN 5 10 1 10 20 27 0 –3 15 15 8 2 7 30 -1 –10 27 20 2 9 14 21
ADVERT.OUT 19 -5 -4 -3 -2 -1 0 4 5 6 7 8 15 18 19 20 21 25 26 27
象棋中“车”的避开问题(ROOK)
提交文件名:ROOK.PAS 问题描述:
在象棋中,”车”是一种能够在水平和垂直方向上移动任意空格数的棋子。在这个问题中,我们将讨论在设有阻止”车”前进的”墙”的小棋盘上放置”车”的问题:在任意两个”车”不能捉到对方的前提下,向棋盘上放入尽量多的”车”。按照要求可知,如果任意两个”车”都不在同一横行或同一竖行,或者至少有一面”墙”将它们隔开,则棋盘上”车”的摆置是合法的。
下面的图反映了同一棋盘上放置”车”的5种情况: 第一幅图是一个空的棋盘;
第二和第三幅图是合法的放置”车”的情况;
11
第四和第五幅图是不合法的放置”车”的情况。 对于这个棋盘来说,合法地放置”车”的最大数量是5;
有多种不同的方法来放置最多的”车”,第二幅图的方法是其中的一种。
请写一个程序,对于给定的一个棋盘,计算出能够在棋盘上合法地放置”车”的最大数。 输入文件(ROOK.IN):
输入文件包含一个以上的棋盘的描述,最后一行以0来表示输入文档的结束。 每个棋盘的描述的第一行是一个正整数n,表示棋盘的大小,n不超过10;
接下来的n行,每一行描述棋盘上的一行,用”.”来表示一个空格,用大写字母”X”来表示一面”墙”。输入文件中不出现空格。 输出文件(ROOK.OUT):
对于每个测试案例,输出能够在棋盘上合法地放置”车”的最大数,同时输出最小能控制整个棋盘的“车”的数量,这两个数字用空格分隔,独自占一行。 输入输出样例: ROOK.IN 4 .X.. .... XX.. .... 2 XX .X 3 .X. X.X .X. 3 ... .XX .XX 4 .... .... .... .... 0
12
ROOK.OUT 5 3 1 1 5 5 2 1 4 4
城市的高度(THE BUILDING HEIGHTS)
提交文件名:BUILDING.PAS 问题描述:
下图左面是一张城市的地图,每座建筑物左上角的数字是建筑物的编号,右下角的数字是建筑物的高度。我们从城外南面看城市,就能看到如下图右边所示的景象。
你要写一个程序,列举出从城外南面看城市,能够看到的所有建筑物。
为了简单起见,我们假设所有的建筑物都是长方体的,而且都是南北向或东西向的。 输入文件(BUILDING.IN):
用数据来描述若干个城市的地图,每一张地图描述如下:
第一行:建筑物的数量n(n<=100);接下来n行,每行有5个实数,以空格分开,分别表示:西南角x轴坐标、西南角y轴坐标、东西向的长度、南北向的长度、高度。
每一张地图都以0结束。地图画在一个直角坐标平面里,所有的坐标均是正数。 输出文件(BUILDING.OUT):
建筑物的编号就是它在输入数据中的位置,从1到n。
对于每一张地图,输出一行。由若干个数字组成,是从城外南面看城市,能够看到的建筑物标号。输出的顺序按照原本的地图从西向东,从南向北,。 输入输出样例: BUILDING.IN 14
160 0 30 60 30 125 0 32 28 60 95 0 27 28 40 70 35 19 55 90 0 0 60 35 80 0 40 29 20 60 35 40 25 45 80 0 67 25 20 50
13
0 92 90 20 80 95 38 55 12 50 95 60 60 13 30 95 80 45 25 50 165 65 15 15 25 165 85 10 15 35 0
BUILDING.OUT 5 9 4 3 10 2 1 14
两个城市间的距离(DISTANCE)
提交文件名:DISTANCE.PAS 问题描述:
我们假设地球是个非常标准的球体,其半径为 6378 KM。A城与B城之间的地理距离是连接A、B两点圆弧测量线的长度,该圆弧测量线紧贴地球的表面。 问题求解:
你的工作就是编写一个程序,计算地球的表面两个给定城市位置间的距离。 (Pi=3.141592653589793) 输入文件(DISTANCE.IN):
输入文件包含两部分:一个是城市列表,另一个是问题列表。
城市列表最多有100行,每行为一个城市,包含一个字符串和两个实数,分别表示城市的名字,所在的纬度和经度,其间用一个空格分隔。城市名字小于30个字符,纬度范围是-90度(South Pole 南极)到 +90 度(North Pole北极);经度范围是-180度到 +180 度),子午线以东为正,子午线以西为负。以一个“#”号为一行,表示城市列表结束。
问题列表有多个,每行为一个问题,包含有两个城市名。问题列表以“##”为结束。 输出文件(DISTANCE.OUT):
对于每一个问题,输出一行,包含两个城市名和它们之间的距离,并且四舍五入到整数。如果某个城市没有出现在城市列表中,则输出一行“Unknown”。 输入输出样例: DISTANCE.IN Ulm 48.7 10.500 Freiburg 47.700 9.50 Philadelphia 39.883 –75.250 SanJose 37.366 –121.933 NorthPole 90 0 SouthPole –90 0 #
Ulm Philadelphia Ulm SanJose Ulm Freiburg Freiburg SanJose SanJose Philadelphia Philadelphia LasVegas Ulm Ulm
14
Ulm NorthPole Ulm SouthPole NorthPole SouthPole ##
DISTANCE.OUT Ulm Philadelphia 6536km Ulm SanJose 9367km Ulm Freiburg 134km Freiburg SanJose 9412km SanJose Philadelphia 4023km Philadelphia LasVegas Unknown Ulm Ulm 0km Ulm NorthPole 4597km Ulm SouthPole 15440km NorthPole SouthPole 20037km
乘积最大(PRODUCT)
提交文件名:PRODUCT.PAS 问题描述:
设有一个长度为N的数字串(N ≤ 50),我们要求使用K个乘号,将其分成K+1份。 问题求解:
找出一种分法,使得这K+1部分的乘积为最大。 例如:K = 1,数字串为312时会有以下两种分法:
1) 3*12 = 36 2) 31*2 = 62
这时,符合题目要求的结果是:62 输入文件(PRODUCT.IN):
输入文件的第一行为一个整数K(K ≤ 10)。第二行为数字串。 输出文件(PRODUCT.OUT):
输出文件包含一个整数,表示求得的最大乘积。 输入输出示例: PRODUCT.IN 3 310143
PRODUCT.OUT 3720
出纳员的雇佣(CASHIER)
提交文件名:CASHIER.PAS 问题描述:
Tehran的一家每天24小时营业的超市,需要一批出纳员来满足它的需要。超市经理雇佣你来帮他解决问题:超市在每天的不同时段需要不同数目的出纳员(例如:午夜时只需一小批,而下午则需要很多)来为顾客提供优质服务。他希望雇佣最少数目的出纳员。
15
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库题库(文件较多)(3)在线全文阅读。
相关推荐: