1. 程式人生 > >牛客國慶集訓派對Day6 H-Mountain(思維)

牛客國慶集訓派對Day6 H-Mountain(思維)

題解

策略顯然是,

如果當前山後面有比它更高的山,

那麼直接飛向第一個比它高的山,忽略中間的山,

如果後面沒有,就直接走向下一座山,下坡。

如果只這樣想的話,可以ST一下區間最大值,模擬。

這樣對於點i,我們RMQ一下[i+1,n]的最大值,

判斷其與i的大小,若小於i則走向i+1,

否則一直向後走直至走到第一個比它大的數。

時間複雜度o(n)。

後來想了一下,

當你沒爬到最頂峰的時候,一直在向上爬,

只要選擇下一個最高峰就可以實現。

到了最頂峰之後,

為了最後到達第n座山腳下,一直在向下滑,

只要選擇下一個最高峰也可實現。

所以,ans=最高峰高度*2。

程式碼

這麼水的題,程式碼就不寫了吧...