1 条题解
-
0
题意分析
核心问题
洛基石油公司要在矩形油田中确定一条东西走向(E - W)的管道位置,让所有油井通过南北走向(N - S)的管道连接到该 E - W 管道,使得 N - S 管道的总长度最短。之后,若满足条件,需绘制出包含油井、管道和 E - W 管道的油田地图。
输入信息
- 输入包含多个油田的数据,每个油田的数据由若干油井的坐标(两个正整数)组成,一行一个坐标对。
- 当一行出现
-1 -1
时,表示当前油田数据结束。 - 最后一行输入
0 0
标志着整个输入结束。
输出要求
- 针对每个油田,先输出编号标题(如
OIL FIELD X
)。 - 若能绘制地图,要绘制出包含油井(用
@
表示)、管道(用*
表示)和 E - W 管道的地图,地图有特定的边框和坐标标记规则。 - 若无法绘制地图,输出
Map is too big to draw for pipeline at X
,其中X
是 E - W 管道所在的南北坐标。
地图绘制限制
- 地图最大为 69 列和 19 行(不包含边框和标签)。
- 仅绘制包含油井的最小边界矩形,其边缘需为 5 的倍数。
- 油井必须在边界矩形内部,不能在边缘上。
解题思路
1. 确定 E - W 管道位置
- 收集油井坐标:对每个油田,读取所有油井的坐标并存储起来。
- 计算总长度:针对每个可能的南北坐标位置(范围是 1 到 73),算出所有油井连接到该位置的 E - W 管道所需的 N - S 管道总长度。
- 选择最优位置:找出总长度最短的位置,若有多个位置总长度相同,选取最靠南(南北坐标最小)的位置。
2. 判断是否能绘制地图
- 确定边界矩形:依据油井的坐标,找出包含所有油井的最小边界矩形,并且保证其边缘是 5 的倍数。
- 检查尺寸:查看边界矩形的列数和行数(不包含边框和标签)是否满足不超过 69 列和 19 行的条件。
3. 绘制地图(若可行)
- 初始化地图:按照边界矩形的大小,创建一个初始全为
.
的二维字符数组来表示地图。 - 绘制油井:在地图相应位置将油井标记为
@
。 - 绘制管道:从每个油井向 E - W 管道绘制
*
表示的 N - S 管道,注意油井位置优先显示为@
。 - 添加边框和标签:按照题目要求添加边框(
|
和-
),每隔 5 个单位用+
标记,并添加坐标标签。
- 1
信息
- ID
- 250
- 时间
- 1000ms
- 内存
- 10MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者