专栏文章
题解:[ABC385F] Visible Buildings
AT_abc385_f题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miqokrc8
- 此快照首次捕获于
- 2025/12/04 08:11 3 个月前
- 此快照最后确认于
- 2025/12/04 08:11 3 个月前
题目简述:
在一条数轴上,存在 座编号从 到 的建筑物。建筑物 位于坐标 ,高度为 。除了高度以外的其他方向的大小可以忽略不计,以上输入均为正整数。
从坐标为 、高度为 的点 出发,如果存在建筑物 上的某个点 ,使得线段 不与任何其他建筑物相交,则建筑物 被认为是可见的。
现在需要找出在坐标 处,无法看到所有建筑物的最大高度。高度必须为非负数;如果在坐标 处高度 可以看到所有建筑物,那么报告 。
解法
首先,我们考虑只有两栋建筑物,最高能到多高,仍看不到所有建筑物。如图所示,显然两栋建筑物的顶点连线与 轴的交点,就是最高的高度。因为一旦高度更高,我们与第二栋建筑物的连线就不交与任何建筑物,就能看到了。

然后,我们考虑加入第三栋建筑物在中间会如何。
若这栋建筑物在原直线的下面,如图,那么新加入的建筑物与左边的建筑物组合,得到了更高的一条连线,这是新的最高的高度。

若这栋建筑物在原直线的上面,如图,那么新加入的建筑物与右边的建筑物组合,得到了更高的一条连线,这是新的最高的高度。

于是我们得到结论,对于每一栋建筑物,我们只需要考虑与其相邻的建筑物,连线,并找到与 轴相交点的最大高度即可。
实现
我们考虑两个点,坐标为 ,。
待定系数,得
解得
将 带入,坐标即为 ,此题完结。
细节
输入有 ,所以无需按 排序,且 相乘小于 ,不用担心溢出问题。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...