NOIP2013T Day2 T1 積木大賽

2021-08-13 12:07:01 字數 1157 閱讀 1765

總時間限制: 

1000ms 

記憶體限制: 

131072kb

描述

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

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

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

輸入

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

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

輸出

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

樣例輸入

5

2 3 4 1 2

樣例輸出

5
提示

資料範圍 

其中一種可行的最佳方案,依次選擇 [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。

**noip2013t day2 t1

貪心法

#include#include#include#include#include#include#include#include#include#includeusing namespace std;

int n;

int h[100005]=;

int cnt=0;

void dfs(int l,int r)//從底開始,每一次找最長的可操作區間

int t=h[l];

for(int i=l;i<=r;++i)

dfs(0,n-1);

cout

}

NOIP2013 D1 T2火柴排隊

涵涵有兩盒火柴,每盒裝有 n 根火柴,每根火柴都有乙個高度。現在將每盒中的火柴各自排成一列,同一列火柴的高度互不相同,兩列火柴之間的距離定義為 ai bi 2 其中 ai 表示第一列火柴中第 i 個火柴的高度,bi 表示第二列火柴中第 i 個火柴的高度。每列火柴中相鄰兩根火柴的位置都可以交換,請你通...

noip2013 d1t2 火柴排隊

看不出是逆序對.感覺藥丸 首先要看出最優解就是兩個陣列均有序的時候 再對兩個陣列的下標求逆序對即可 歸併 樹狀陣列 1 include2 include3 include4 include5 include6 define modd 99999997 7using namespace std 8co...

NOIP2013D1T2 火柴排隊 題解

題目描述略 對於距離最小,其貪心策略為將兩序列公升序排序後比較。以下為簡易的證明 設對任意 a1 a2,b1 b2,第一種排布是 a1a2.b1b2.此時距離為 a1 b1 2 a2 b2 2 1 第二種排布是 a1a2.b2b1.此時距離為 a1 b2 2 a2 b1 2 2 用 1 式減去 2 ...