题目描述
给定一个长度为 n 的整数数组 a,我们希望将其变为单调不降(即对于所有 1≤i<n,有 ai≤ai+1)。
可以执行的操作为:
- 选择两个不同下标 i,j(1≤i,j≤n,i=j),将 ai 和 aj 合并为一个新数字(值为 ai+aj),并从数组中删除原来的 ai 和 aj;
- 数组现在只剩下 n−2 个数字,保留其原有顺序并将新数字插入到数组的任意位置(可以在开头、末尾,也可以在任意两个元素之间);
- 如此操作可以反复执行。
问:最少需要执行多少次上述操作,才能使得数组单调不降?
题目内容
小笨有一个长度为 n 的数组 a,但众所周知小笨只对单调不降的数组感兴趣,即:ai≤ai+1(1≤i≤n)
现在,小苯希望将 a 变成他感兴趣的数组,为此他可以做以下操作:
- 选择两个不同的下标 i,j(1≤i,j≤n,i=j),将 ai 和 aj 合并成一个新数字,值为 ai+aj ,并将 ai 和 aj 分别删除,剩余的 n−2 个数字按照原顺序拼接起来,接着将 ai + aj 这个新数字插入数组的任意位置。(可以是任意两个元素中间,也可以是 a1 的前面,也可以是 an 的后面。)
小苯想知道,他至少需要执行多少次操作,才能使得 a 数组单调不降,请你帮他算一算吧。
输入描述
本题有多组测试数据。
输入的第一行包含一个正整数 T(1≤T≤100),表示数据组数。
接下来包含 T 组数据,每组数据的格式如下:
第一行输入一个正整数n(1≤n≤105),表示数组 a 的长度。
第二行输入n个正整数,表示数组a,其中1≤ai≤109
(保证所有测试数据中,n 的总和不超过 2×105 。)
输出描述
对于每组测试数据:
在单独的一行输出一行一个整数,表示至少要执行的操作次数。
样例1
输入
2
5
1 3 2 2 1
4
1 2 3 4
输出
1
0