XYNUOJ 積木大賽

2021-08-16 18:08:56 字數 1237 閱讀 7840

時間限制: 1 sec  

記憶體限制: 128 mb

提交: 11  

解決: 8 [

提交][

狀態][

討論版]

春春幼兒園舉辦了一年一度的「積木大賽」。今年比賽的內容是搭建一座寬度為n的大廈,大廈可以看成由n塊寬度為1的積木組成,第i塊積木的最終高度需要是hi。

在搭建開始之前,沒有任何積木(可以看成n塊高度為0的積木)。接下來每次操作,小朋友們可以選擇一段連續區間[l, r],然後將第l塊到第r塊之間(含第l塊和第r塊)所有積木的高度分別增加1。

小m是個聰明的小朋友,她很快想出了建造大廈的最佳策略,使得建造所需的操作次數最少。但她不是乙個勤於動手的孩子,所以想請你幫忙實現這個策略,並求出最少的操作次數。

每組輸入資料報含兩行,第一行包含乙個整數n,表示大廈的寬度。

第二行包含n個整數,第i個整數為hi。

資料規模:

其中一種可行的最佳方案,依次選擇 [1, 5] [1, 3] [2, 3] [3, 3] [5, 5]

對於30%的資料,有1≤n≤10;

對於70%的資料,有1≤n≤1000;

對於100%的資料,有1≤n≤100000,0≤hi≤10000。

每組輸出僅一行,即建造所需的最少運算元。

下面是對樣例資料的解釋:

其中一種可行的最佳方案,依次選擇

[1, 5]  [1, 3]  [2, 3]  [3, 3]  [5, 5]

5

2 3 4 1 2

5
提示
比如搭建的某個過程中積木的狀態是2,3,4,0,1,豎著看的話,則搭建第一列的時候可以把第二三列也搭建兩行,然後搭建第三列,此時第三列只要搭建一塊即可,之後每列都如此,因此推出,當前列比前一列多出幾塊積木則總算子需要加幾

#include#define maxn 100005

int h[maxn];

int main()

printf("%d\n",ans);

} return 0;

}

這道題剛開始寫的時候時間超限了,後來看了別人的部落格,雖然略微不懂,但是還是按哪個思路寫出來了,別人部落格有個思想很受用:應該及時變通,換個角度思考,解決問題。

無論是簡單題還是難題都不會是毫無難度,簡單題沒有立即想出來不要慌,冷靜想想,簡單題不會太難,深入的想了許久還沒想出,一定是方向錯了,對於思路轉變不要猶豫,考場上時間就是金錢。

貪心 積木大賽

積木大賽 藍書 incdec sequence弱化題目,知道那題自然就會寫這題 這題主要思維突破點 逆向思考,原陣列對應差分陣列的特點 題目 春春幼兒園舉辦了一年一度的 積木大賽 今年比賽的內容是搭建一座寬度為n的大廈,大廈可以看成由n塊寬度為1的積木組成,第i塊積木的最終高度需要是hi。在搭建開始...

回檔 積木大賽

題目描述 description 春春幼兒園舉辦了一年一度的 積木大賽 今年比賽的內容是搭建一座寬度為n的大廈,大廈可以看成由n塊寬度為1的積木組成,第i塊積木的最終高度需要是hi。在搭建開始之前,沒有任何積木 可以看成n塊高度為 0 的積木 接下來每次操作,小朋友們可以選擇一段連續區間 l,r 然...

1264 積木大賽 (貪心

時間限制 1 sec 記憶體限制 128 mb 提交 62 解決 38 您該題的狀態 未開始 提交 狀態 討論版 春春幼兒園舉辦了一年一度的 積木大賽 今年比賽的內容是搭建一座寬度為n的大廈,大廈可以看成由n塊寬度為1的積木組成,第i塊積木的最終高度需要是hi。在搭建開始之前,沒有任何積木 可以看成...