C. 占领高地(3-3)

    传统题 文件IO:highland 1000ms 256MiB

占领高地(3-3)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目背景

在一次重要的秋季演习中,指挥官岐岐接到任务:在一条连绵的山脉上占领若干高地,以确保所有高地都在我方火力覆盖之下,从而有效地抵御敌方偷袭。为了节约兵力,岐岐希望以最少的占领数量完成任务。

题目描述

在一条很长的直线形山脉上,有 nn 个高地,编号为 ii 的高地位于从左到右 xix_i 米处,高度为 hih_i 米。我们记第 ii 个高地的坐标为 ((x_i, h_i))。

每个高地的火力覆盖范围由通过 ((x_i,h_i)) 且斜率为 1-1+1+1 的两条半直线所界定,如下图所示。其覆盖区域对应于平面中满足

yhixxiy \le h_i - \bigl|\,x - x_i\bigr|

的所有点。

若某个高地的位置不在我方已占领高地的火力覆盖范围内,就存在被敌方占领的风险,必须派兵去占领;反之则无需占领。请在满足所有高地都处于我方火力覆盖之下的前提下,求出我方最少需要占领的高地数量。

输入格式

输入共三行。

第一行输入一个整数 nn,表示高地数量。
第二行输入 nn 个整数,第 ii 个整数为 xix_i
第三行输入 nn 个整数,第 ii 个整数为 hih_i

输出格式

输出一行,一个整数,表示我方最少需要占领的高地数量。

样例

10
66 80 88 10 79 1 44 56 90 92
57 58 63 58 66 39 74 88 47 61
5
10
39 100 66 16 25 76 47 49 68 87
72 14 50 43 29 56 33 87 61 19
1

样例解释

样例1:选择 5 个关键高地,其火力交叠覆盖了其它所有高地的位置,满足全线防御且占领数最少。
样例2:编号为 8 的高地(位置 49,高度 87)自身火力范围足以覆盖所有其他高地,仅需占领 1 个即可。

数据范围

  • 对于 10% 的数据,所有 hih_i 相等;
  • 对于另外 10% 的数据,1n101 \le n \le 10
  • 对于 40% 的数据,1n2×1031 \le n \le 2\times 10^3
  • 对于 100% 的数据,1n5×1051 \le n \le 5\times 10^51xi5×1061 \le x_i \le 5\times 10^61hi1091 \le h_i \le 10^9
  • 保证不存在两个高地的 xix_i 相同。
  • 要求算法时间复杂度最好达到 (O(n\log n)) 或更优。

CSP-J 模拟赛2

未参加
状态
已结束
规则
OI
题目
4
开始于
2025-9-29 17:00
结束于
2025-10-2 18:00
持续时间
3.5 小时
主持人
参赛人数
40