P8787 [蓝桥杯 2022 省 B] 砍竹子

题目描述

这天,小明在砍竹子,他面前有 $n$ 棵竹子排成一排,一开始第 $i$ 棵竹子的高度为 $h_{i}$. 他觉得一棵一棵砍太慢了,决定使用魔法来砍竹子。魔法可以对连续的一段相同高度的竹子使用,假设这一段竹子的高度为 $H$,那么使用一次魔法可以把这一段竹子的高度都变为 $\left\lfloor\sqrt{\left\lfloor\frac{H}{2}\right\rfloor+1}\right\rfloor$, 其中 $\lfloor x\rfloor$ 表示对 $x$ 向下取整。小明想知道他最少使用多少次魔法可以让所有的竹子的高度都变为 $1$。

输入格式

输出格式

说明/提示

**【样例说明】** 其中一种方案: $214267\rightarrow 214262\rightarrow 214222\rightarrow 211222\rightarrow 111222\rightarrow 111111$ 共需要 5 步完成 **【评测用例规模与约定】** 对于 $20 \%$ 的数据,保证 $n \leq 1000, h_{i} \leq 10^{6}$ 。 对于 $100 \%$ 的数据,保证 $n \leq 2 \times 10^{5}, h_{i} \leq 10^{18}$ 。 蓝桥杯 2022 省赛 B 组 J 题。