花匠棟棟種了一排花,每株花都有自己的高度。花兒越長越大,也越來越擠。棟棟決定把這排中的一部分花移走,將剩下的留在原地,使得剩下的花能有空間長大,同時,棟棟希望剩下的花排列得比較別緻。
具體而言,棟棟的花的高度可以看成一列整數h_1, h_2, … , h_n。設當一部分花被移走後,剩下的花的高度依次為g_1, g_2, … , g_m,則棟棟希望下面兩個條件中至少有乙個滿足:
條件 a:對於所有的1
輸入的第一行包含乙個整數 n,表示開始時花的株數。
第二行包含 n 個整數,依次為h_1, h_2,… , h_n,表示每株花的高度。
輸出一行,包含乙個整數 m,表示最多能留在原地的花的株數。
5 5 3 2 1 2
對於 20%的資料,n ≤ 10;
對於 30%的資料,n ≤ 25;
對於 70%的資料,n ≤ 1000,0 ≤ h_i ≤ 1000;
對於 100%的資料,1 ≤ n ≤ 100,000,0 ≤ h_i ≤ 1,000,000,所有的h_i隨機生成,所有隨機數服從某區間內的均勻分布。
計算拐點,注意相鄰兩點相同
var
x,y:array[0..100000]of longint;
i:longint;
n,ans,k,t:longint;
begin
readln(n);
for i:=1
to n do
read(x[i]);
y[1]:=x[1]; y[0]:=1;
for i:=2
to n do
if x[i]<>y[y[0]]
then
begin inc(y[0]); y[y[0]]:=x[i]; end;
for i:=3
to y[0] do
if ((y[i]1])and(y[i-1]>y[i-2]))or((y[i]>y[i-1])and(y[i-1]2]))
then inc(ans);
if ans=0
then ans:=y[0]
else ans:=ans+2;
writeln(ans);
end.
NOIP2013提高組 花匠
花匠棟棟種了一排花,每株花都有自己的高度。花兒越長越大,也越來越擠。棟棟決定把這排中的一部分花移走,將剩下的留在原地,使得剩下的花能有空間長大,同時,棟棟希望剩下的花排列得比較別緻。具體而言,棟棟的花的高度可以看成一列整數h 1,h 2,h n。設當一部分花被移走後,剩下的花的高度依次為g 1,g ...
NOIP2013提高組 花匠
題目描述 花匠棟棟種了一排花,每株花都有自己的高度。花兒越長越大,也越來越擠。棟棟決定把這排中的一部分花移走,將剩下的留在原地,使得剩下的花能有空間長大,同時,棟棟希望剩下的花排列得比較別緻。具體而言,棟棟的花的高度可以看成一列整數h 1,h 2,h n。設當一部分花被移走後,剩下的花的高度依次為g...
NOIP2013 洛谷1970 花匠
題目描述 花匠棟棟種了一排花,每株花都有自己的高度。花兒越長越大,也越來越擠。棟棟決定 把這排中的一部分花移走,將剩下的留在原地,使得剩下的花能有空間長大,同時,棟棟希 望剩下的花排列得比較別緻。具體而言,棟棟的花的高度可以看成一列整數h1,h2 hn。設當一部分花被移走後,剩下的花的高度依次為g1...