p1845花匠
accepted
標籤:noip提高組2013
花匠棟棟種了一排花,每株花都有自己的高度。花兒越長越大,也越來越擠。棟棟決定把這排中的一部分花移走,將剩下的留在原地,使得剩下的花能有空間長大,同時,棟棟希望剩下的花排列得比較別緻。
具體而言,棟棟的花的高度可以看成一列整數h1, h2, … , hn。設當一部分花被移走後,剩下的花的高度依次為g1, g2, … , gm,則棟棟希望下面兩個條件中至少有乙個滿足:
條件 a:對於所有的
1<
i2 1,g2
i>g2
i−1 g2i>g2i−1
,且g2
i>g2
i+1 g2i>g2i+1
;
條件 b:對於所有的
1<
i2 1,g2
ii−1 g2i,且g2
ii+1 g2i。
注意上面兩個條件在m = 1時同時滿足,當m > 1時最多有乙個能滿足。
請問,棟棟最多能將多少株花留在原地。
輸入的第一行包含乙個整數 n,表示開始時花的株數。
第二行包含 n 個整數,依次為h1, h2,… , hn,表示每株花的高度。
輸出一行,包含乙個整數 m,表示最多能留在原地的花的株數。
55 3 2 1 2
3
每個測試點1s。
對於 20%的資料,n ≤ 10;
對於 30%的資料,n ≤ 25;
對於 70%的資料,n ≤ 1000,0 ≤ hi ≤ 1000;
對於 100%的資料,1 ≤ n ≤ 100,000,0 ≤ hi ≤ 1,000,000,所有的h_i隨機生成,所有隨機數服從某區間內的均勻分布。
noip 2013 提高組 day 2
1)條件a,第i盆花比左右兩邊的花高
2)條件b,第i盆花比左右兩邊的花矮
3) 兩個條件在m = 1時同時滿足,當m > 1時最多有乙個能滿足。這句話很容易理解錯,其實就是只有一盆花時,即算符合條件a的,也算符合條件b的,要算兩個
4)顯然如果有兩盆花,結果也是2
5)要去重,所以開始輸入資料時,和前一盆花高度一樣的就不儲存
6)要輸入的資料很多,用scanf();
#include #include #define n 100002
using namespace std;
int n,ans=2,h,a[n],t;
int main()
for(int i=2;imax(a[i-1],a[i+1])||a[i]noip做題記錄(提高組)
18章 表驅動方法 (1)
表驅動法是一種程式設計模式 scheme 從表裡面查詢資訊而不使用邏輯語句 if和else 根據 大全中的描述,凡是能通過邏輯語句來選擇處理的事物,都可以通過查表來選擇。但是對於簡單的邏輯,則不宜使用表驅動法,表驅動發更加適合複雜的邏輯。適當情況下使用表驅動法的幾個好處 生成的 簡單 容易修改維護 ...
jdk1 8記憶體分析 1
分為堆區和非堆區,以下對下圖進行分析和記錄 堆區分為young區,和old區,yong又分為2大塊,s區 from和to 和eden區,s區是同樣大小的兩部份,同一時間點下,只會有一塊有資料 主要是取代1.8之前的方法區,metaspace 分為ccs和codecache2份,ccs 壓縮類空間 在...
Linux學習筆記(1月18日)
伺服器的選擇 1.ecs 2.傳統idc 如何選擇idc機房 1.考慮機房和辦公地點的距離,方便維護 2.看機房的穩定性 看運營商的實力 電信 聯通 移動以及一些提供服務的第三方運營公司 考察機房的硬體實力 機房投入使用的時間 溫度濕度等環境控制裝置的效能以及ups 3.考慮成本 機櫃 頻寬 託管等...