CFCF2159D1.Inverse Minimum Partition (Easy Version)

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

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

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

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

假设你将一个序列 cc 划分成一个或多个子序列,拼接后能够还原出 cc。例如,当序列 cc[3,1,4,1,5][3,1,4,1,5] 时,以下几种划分是合法的:[[3,1],[4,1,5]][[3,1],[4,1,5]][[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,1],[1,5]][[3,4,1],[1,5]][[3,4,1],[1,5]] 并不是合法的划分方式。

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

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

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

输入格式

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

每组用例的第一行包含一个整数 nn1n4×1051\le n\le 4\times 10^5)。

第二行包含 a1,a2,,ana_1,a_2,\ldots,a_n1ai10181\le a_i\le 10^{18})。

保证所有用例的 nn 之和不超过 4×1054\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

说明/提示

对于第一个测试用例,划分 [[3,1,4,1],[5]][[3,1,4,1],[5]] 可得到总代价 1+1=21+1=2

对于第二个测试用例,划分 [[9,2,6,5,3],[5,8,9,7,9]][[9,2,6,5,3],[5,8,9,7,9]] 可得到总代价 2+2=42+2=4

对于第三个测试用例,划分 [[1],[2,3,4],[5,6,7,8]][[1],[2,3,4],[5,6,7,8]] 可得到总代价 1+2+2=51+2+2=5

对于第四个测试用例,划分 [[1],[1000000000000000000]][[1],[1\,000\,000\,000\,000\,000\,000]] 可得到总代价 1+1=21+1=2

首页