2137. 定(吗)海(喽)神(立)针(棍)

黑吗喽终于得到了悟空同款如意金箍棒,急切地准备在立棍(通俗说就是悬挂在棍子顶端)上试验一下。

已知棍子越长,吗喽就站得越高。(棍子长度为 h,则吗喽高度为 h

黑吗喽将会进行 n 次立棍试验,才会心满意足。(一次立棍试验的定义为:离开地面站到棍子上,直到再次回到地面)

由于黑吗喽学艺不精,他每次立棍试验开始时,棍子的初始高度并不能随心控制。

——而他唯一能做的,就是施展把当前棍子的长度 \times 2 的魔法,得到一个新的当前高度。

(上进的黑吗喽希望:对于从第 2 次立棍试验开始,每次立棍试验的最终高度都不小于前一次试验的最终高度。)

因此,当第 i 次立棍试验的当前高度不小于第 i-1 次试验的最终高度时,黑吗喽就会记录当前高度为第 i 次试验的最终高度,并得意洋洋地跳回地面,结束这次试验;

对于第 1 次试验,黑吗喽则会直接记录初始高度为最终高度,随后跳回地面结束试验。

而实际上,Hojstyer 才是如意金箍棒真正的主人,可以任意给出每次立棍试验的初始高度。

现在,刁难的 Hojstyer 给出了 n 次立棍试验的初始高度——希望聪明的你算出,黑吗喽至少需要施展多少次魔法,才能完成n次立棍试验。

形式上,给定一个长度为 n 的数组 a_1,a_2\dots a_n;定义一次操作为使 a_i = 2a_i;问使 a_i 不递减的最小操作次数

一个数组不递减定义为 \forall i (1\leq i \leq n - 1),满足 a_i \leq a_{i+1}

输入

第一行输入一个整数 T (1\leq T \leq 10^4) ,表示测试用例的数量

每一个测试用例输入一个 n (1\leq n \leq 10^5)

接下来一行输入 n 个整数 a_1, a_2 \dots a_n (1\leq a_i \leq 10^9)

数据保证所有测试用例的 n 之和小于等于 2 \times 10^5

输出

对于每个测试用例,输出一个正整数,表示最小操作次数。

样例

标准输入 复制文本
9
1
1
2
2 1
3
3 2 1
4
7 1 5 3
5
11 2 15 7 10
6
1 8 2 16 8 16
2
624323799 708290323
12
2 1 1 3 3 11 12 22 45 777 777 1500
12
12 11 10 9 8 7 6 5 4 3 2 1
标准输出 复制文本
0
1
3
6
10
3
0
2
66

来源

2024 华南师范大学百度杯新生赛 正式赛 Div.2 新生赛道

登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 582
通过 54