[蓝桥杯 2022 省 A] 青蛙过河

Luogu
IDLGP8775
Time1000ms
Memory128MB
DifficultyP4
贪心二分2022双指针 two-pointer蓝桥杯省赛
小青蛙住在一条河边,它想到河对岸的学校去学习。小青蛙打算经过河里的石头跳到对岸。 河里的石头排成了一条直线,小青蛙每次跳跃必须落在一块石头或者岸上。不过,每块石头有一个高度,每次小青蛙从一块石头起跳,这块石头的高度就会下降 $1$,当石头的高度下降到 $0$ 时小青蛙不能再跳到这块石头上(某次跳跃后使石头高度下降到 $0$ 是允许的)。 小青蛙一共需要去学校上 $x$ 天课,所以它需要往返 $x$ 次,即过河 $2x$ 次。当小青蛙具有一个跳跃能力 $y$ 时,它能跳不超过 $y$ 的距离。 请问小青蛙的跳跃能力至少是多少才能用这些石头上完 $x$ 次课。 ## Input 输入的第一行包含两个整数 $n, x$, 分别表示河的宽度和小青蛙需要去学校的天数。请注意 $2x$ 才是实际过河的次数。 第二行包含 $n-1$ 个非负整数 $H_{1}, H_{2}, \cdots, H_{n-1}$, 其中 $H_{i}>0$ 表示在河中与小青蛙的家相距 $i$ 的地方有一块高度为 $H_{i}$ 的石头,$H_{i}=0$ 表示这个位置没有石头。 ## Output 输出一行, 包含一个整数, 表示小青蛙需要的最低跳跃能力。 [samples] ## Note **【样例解释】** 由于只有两块高度为 $1$ 的石头,所以往返只能各用一块。第 $1$ 块石头和对岸的距离为 $4$,如果小青蛙的跳跃能力为 $3$ 则无法满足要求。所以小青蛙最少需要 $4$ 的跳跃能力。 **【评测用例规模与约定】** 对于 $30 \%$ 的评测用例,$n \leq 100$; 对于 $60 \%$ 的评测用例,$n \leq 1000$; 对于所有评测用例,$1 \leq n \leq 10^{5}$,$1 \leq x \leq 10^{9}$,$0 \leq H_{i} \leq 10^{4}$。 蓝桥杯 2022 省赛 A 组 F 题。
Samples
Input #1
5 1
1 0 1 0
Output #1
4
API Response (JSON)
{
  "problem": {
    "name": "[蓝桥杯 2022 省 A] 青蛙过河",
    "description": {
      "content": "小青蛙住在一条河边,它想到河对岸的学校去学习。小青蛙打算经过河里的石头跳到对岸。 河里的石头排成了一条直线,小青蛙每次跳跃必须落在一块石头或者岸上。不过,每块石头有一个高度,每次小青蛙从一块石头起跳,这块石头的高度就会下降 $1$,当石头的高度下降到 $0$ 时小青蛙不能再跳到这块石头上(某次跳跃后使石头高度下降到 $0$ 是允许的)。 小青蛙一共需要去学校上 $x$ 天课,所以它需要往返 $",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 131072
    },
    "difficulty": {
      "LuoguStyle": "P4"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP8775"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "小青蛙住在一条河边,它想到河对岸的学校去学习。小青蛙打算经过河里的石头跳到对岸。\n\n河里的石头排成了一条直线,小青蛙每次跳跃必须落在一块石头或者岸上。不过,每块石头有一个高度,每次小青蛙从一块石头起跳,这块石头的高度就会下降 $1$,当石头的高度下降到 $0$ 时小青蛙不能再跳到这块石头上(某次跳跃后使石头高度下降到 $0$ 是允许的)。\n\n小青蛙一共需要去学校上 $x$ 天课,所以它需要往返 $...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments