這天,小明在砍竹子,他面前有 n 棵竹子排成一排,一開始第 i 棵竹子的高度為 hi .
他覺得一棵一棵砍太慢了,決定使用魔法來砍竹子。魔法可以對(duì)連續(xù)的一段相同高度的竹子使用,假設(shè)這一段竹子的高度為 H,那么使用一次魔法可以把這一段竹子的高度都變?yōu)?img src="/oj/upload/image/20220411/20220411105248_68159.png" alt="藍(lán)橋杯2022年第十三屆省賽真題砍竹子" width="84" height="33" title="藍(lán)橋杯2022年第十三屆省賽真題砍竹子" align="" />,其中 ?x? 表示對(duì) x 向下取整。小明想知道他最少使用多少次魔法可以讓所有的竹子的高度都變?yōu)?1。
第一行為一個(gè)正整數(shù) n,表示竹子的棵數(shù)。
第二行共 n 個(gè)空格分開的正整數(shù) hi,表示每棵竹子的高度。
一個(gè)整數(shù)表示答案。
6 2 1 4 2 6 7
5
其中一種方案:
2 1 4 2 6 7
→ 2 1 4 2 6 2
→ 2 1 4 2 2 2
→ 2 1 1 2 2 2
→ 1 1 1 2 2 2
→ 1 1 1 1 1 1
共需要 5 步完成。
對(duì)于 20% 的數(shù)據(jù),保證 n ≤ 1000, hi ≤ 106。
對(duì)于 100% 的數(shù)據(jù),保證 n ≤ 2 × 105, hi ≤ 1018。
第十三屆藍(lán)橋杯大賽軟件賽省賽 C/C++ 大學(xué) B 組 | |
---|---|
C題 | |
D題 | |
E題 | |
F題 | |
G題 | |
H題 | |
I題 | |
J題 |
注意事項(xiàng):
1. 對(duì)于編程題目,要求選手給出的解答完全符合 GNU C/C++ 標(biāo)準(zhǔn),不能使用諸如繪圖、Win32API、中斷調(diào)用、硬件操作或與操作系統(tǒng)相關(guān)的 API。
2. 代碼中允許使用 STL 類庫(kù)。
3. main 函數(shù)結(jié)束必須返回 0。
4. 所有依賴的函數(shù)必須明確地在源文件中 #include
5. 提交時(shí),注意選擇使用C或C++語(yǔ)言。
本比賽結(jié)束依舊可以提交,請(qǐng)見題集2022年第十三屆藍(lán)橋杯大賽軟件類省賽C/C++大學(xué)B組真題