题目描述
这天,小明在砍竹子,他面前有 $n$ 棵竹子排成一排,一开始第 $i$ 棵竹子的高度为 $h_i$.
他觉得一棵一棵砍太慢了,决定使用魔法来砍竹子。魔法可以对连续的一段相同高度的竹子使用,假设这一段竹子的高度为 $H$,那么使用一次魔法可以把这一段竹子的高度都变为 $\big\lfloor\sqrt{\lfloor\frac H2+1\rfloor}\big\rfloor$,其中 $\lfloor x\rfloor$ 表示对 $x$ 向下取整。小明想知道他**最少**使用多少次魔法可以让所有的竹子的高度都变为 $1$。
输入格式
第一行为一个正整数 $n$,表示竹子的棵数。
第二行共 $n$ 个空格分开的正整数 $h_i$,表示每棵竹子的高度。
- 对于 $20\%$ 的数据,保证 $n\le 1000,\ h_i\le 10^6$.
- 对于 $100\%$ 的数据,保证 $n\le 2\times 10^5,\ h_i\le 10^{18}$.
提示
其中一种方案:
$2\ 1\ 4\ 2\ 6\ 7$
$\rightarrow 2\ 1\ 4\ 2\ 6\ 2$
$\rightarrow 2\ 1\ 4\ 2\ 2\ 2$
$\rightarrow 2\ 1\ 1\ 2\ 2\ 2$
$\rightarrow 1\ 1\ 1\ 2\ 2\ 2$
$\rightarrow 1\ 1\ 1\ 1\ 1\ 1$
共需要 $5$ 步完成。