#63. 京东2024秋季-3.生成指定数组的最少操作次数

题目描述
题解
题库

京东2024秋季-3.生成指定数组的最少操作次数

题目描述

牛牛有一个长度为n且值都为0的数组a。对于这个数组件牛每次操作可以选择一个区间[l, r],对于[l, r]上的每一个数牛牛必须让其加一或者乘二(元素之间操作独立,可以选择一些元素乘二,一些元素加一,但是区间内每个元素都要操作)。

牛牛还有一个目标数组b,牛牛想知道对于初始数组a来说,其最少操作多少次可以将其变为b呢。

注意:你不能在第一次进行乘2操作。

输入描述

第一行为t,表示有t组数据。

接下来有2×t行,每组数据的第一行为一个n。

第二行为n个整数,表示目标数组的元素bi。

1 <= t <= 10;

1 <= n <= 1e5;

1 <= bi <= 1e9;

Σn <= 1e5.

输出描述

输出为t行,每行为一组答案表示牛牛的最小操作次数。

输入示例

2
5
1 1 2 1 1
5
1 2 3 4 5

输出示例

2
4

提示信息

第一组数据,选择[0, 4]加一;然后选[2, 2]择加一;

第二组数据,选择[0, 4]加一;然后[1, 4]加一;再对区间[2, 4]中 -> [3, 4]乘2, [2, 2]加一;最后[4, 4]加一。

时间限制:c/c++:1s;go:2s;java:5s;其他语言:6s。