1 条题解

  • 0
    @ 2025-5-4 12:34:20

    题意分析

    核心问题

    洛基石油公司要在矩形油田中确定一条东西走向(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
    上传者