CF1667A.Make it Increasing
普及-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given an array a consisting of n positive integers, and an array b, with length n. Initially bi=0 for each 1≤i≤n.
In one move you can choose an integer i (1≤i≤n), and add ai to bi or subtract ai from bi. What is the minimum number of moves needed to make b increasing (that is, every element is strictly greater than every element before it)?
给你一个由 n 个正整数组成的数组 a,以及一个长度为 n 的数组 b。初始时,对每个 1≤i≤n,均有 bi=0。
在一次操作中,你可以选择一个整数 i(1≤i≤n),并将 ai 加到 bi 上,或从 bi 中减去 ai。问:使 b 成为严格递增数组(即每个元素都严格大于其前面的所有元素)所需的最少操作次数是多少?
输入格式
The first line contains a single integer n (2≤n≤5000).
The second line contains n integers, a1, a2, ..., an (1≤ai≤109) — the elements of the array a.
第一行包含一个整数 n(2≤n≤5000)。
第二行包含 n 个整数:a1、a2、…、an(1≤ai≤109)——数组 a 的元素。
输出格式
Print a single integer, the minimum number of moves to make b increasing.
输出一个整数,表示使 b 严格递增所需的最少操作次数。
输入输出样例
输入#1
5 1 2 3 4 5
输出#1
4
输入#2
7 1 2 1 2 1 2 1
输出#2
10
输入#3
8 1 8 2 7 3 6 4 5
输出#3
16
说明/提示
Example 1: you can subtract a1 from b1, and add a3, a4, and a5 to b3, b4, and b5 respectively. The final array will be [−1, 0, 3, 4, 5] after 4 moves.
Example 2: you can reach [−3, −2, −1, 0, 1, 2, 3] in 10 moves.
示例 1:你可以从 b1 中减去 a1,并分别将 a3、a4 和 a5 加到 b3、b4 和 b5 上。经过 4 次操作后,最终数组为 [−1, 0, 3, 4, 5]。
示例 2:你可以在 10 次操作内得到数组 [−3, −2, −1, 0, 1, 2, 3]。
输入解题思路,AI测评打分。不知道怎么写?