题库练习 Inverse Minimum Partition (Easy Version)
← 上一题 下一题 →

A16696 | Inverse Minimum Partition (Easy Version)

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

这是该问题的简单版本。不同版本之间的区别在于,这一版本只要求你找到 $f(a)$。只有当你解决了所有版本的问题后,才能进行攻击。

对于某个长度为 $k$ 的正整数序列 $b$,序列的代价定义如下$^{*}$:

$$ \mathtt{cost}(b)=\left\lceil\frac{b_k}{\min(b_1,b_2,\ldots,b_k)}\right\rceil $$

假设你将一个序列 $c$ 划分成一个或多个子序列,拼接后能够还原出 $c$。例如,当序列 $c$ 为 $[3,1,4,1,5]$ 时,以下几种划分是合法的:$[[3,1],[4,1,5]]$,$[[3],[1,4,1],[5]]$,$[[3,1,4,1,5]]$。而 $[[3,1],[1,5]]$ 和 $[[3,4,1],[1,5]]$ 并不是合法的划分方式。

对于一个正整数序列 $c$ 的某种划分,其总总代价定义为所有子序列代价之和。我们定义 $f(c)$ 为能够将序列 $c$ 划分后的最小总代价。

给定一个长度为 $n$ 的正整数序列 $a$,请你计算 $f(a)$ 的值。

$^{*}$给定实数 $x$,$\left\lceil x\right\rceil$ 表示不小于 $x$ 的最小整数。例如,$\left\lceil3.14\right\rceil$ 的值为 $4$。

输入格式

每组测试数据包含多组用例。第一行包含测试用例数 $t$($1\le t\le 10^4$)。每组用例的描述如下:

每组用例的第一行包含一个整数 $n$($1\le n\le 4\times 10^5$)。

第二行包含 $a_1,a_2,\ldots,a_n$($1\le a_i\le 10^{18}$)。

保证所有用例的 $n$ 之和不超过 $4\times 10^5$。

输出格式

对于每个测试用例,输出一行答案。

输入输出样例

输入 #1
4
5
3 1 4 1 5
10
9 2 6 5 3 5 8 9 7 9
8
1 2 3 4 5 6 7 8
2
1 1000000000000000000
输出 #1
2
4
5
2
C++ 编辑器
输入
输出