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$。
对于某个长度为 $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$。
每组用例的第一行包含一个整数 $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
对于第一个测试用例,划分 $[[3,1,4,1],[5]]$ 可得到总代价 $1+1=2$。
对于第二个测试用例,划分 $[[9,2,6,5,3],[5,8,9,7,9]]$ 可得到总代价 $2+2=4$。
对于第三个测试用例,划分 $[[1],[2,3,4],[5,6,7,8]]$ 可得到总代价 $1+2+2=5$。
对于第四个测试用例,划分 $[[1],[1\,000\,000\,000\,000\,000\,000]]$ 可得到总代价 $1+1=2$。
对于第二个测试用例,划分 $[[9,2,6,5,3],[5,8,9,7,9]]$ 可得到总代价 $2+2=4$。
对于第三个测试用例,划分 $[[1],[2,3,4],[5,6,7,8]]$ 可得到总代价 $1+2+2=5$。
对于第四个测试用例,划分 $[[1],[1\,000\,000\,000\,000\,000\,000]]$ 可得到总代价 $1+1=2$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?