JZOJ Day 2 NOIP普及模擬 和諧數

2021-08-03 13:54:41 字數 1178 閱讀 7465

題目描述

給定乙個長度為n的序列a,對於每乙個數都可選或不選,把選出的數有序組成乙個新的序列b,使b序列的「和諧數」最大。

乙個序列的和諧數如下定義:對於位置i,如果第奇數次選的則加上bi,偶數次選的則減去bi

注意:新的序列b必須是從左到右依次在a序列選擇的,即不能打亂順序。

輸入輸入的第一行是乙個n,第二行為n個數,即序列a

輸出 輸出一行乙個整數,即表示最大的和諧數

樣例輸入

5

1 2 3 4 5

sample input2

61 3 5 4 6 8

樣例輸出

5

sample output2

9

資料範圍限制

對於20%的資料,1<=n<=20

對於50%的資料,1<=n<=1000

對於100%的資料,1<=n<=10000000,1<=ai<=100

分析設f[0,i]表示當前這一位是減ai的最大值,得f[

0,i]:=max(f[

0,i-

1],f[

1,i-

1]-a[i]);

設f[1,i]表示當前這一位是加ai的最大值,得f[

1,i]:=max(f[

1,i-

1],f[

0,i-

1]+a[i]);

最後輸出max(f[

0,n],f[

1,n])

程式:

uses math;

varn,i:longint;

a:array[0..10000000]of longint;

f:array[0..1,0..10000000]of longint;

begin

readln(n);

for i:=1

to n do

read(a[i]);

for i:=1

to n do

begin

f[0,i]:=max(f[0,i-1],f[1,i-1]-a[i]);

f[1,i]:=max(f[1,i-1],f[0,i-1]+a[i]);

end;

write(max(f[0,n],f[1,n]));

end.

JZOJ Day 2 普及模擬 串

題目描述 給定乙個0 1串,請找到乙個盡可能長的子串,其中包含的0與1的個數相等。輸入乙個字串,只包含01,長度不超過1000000。輸出 一行乙個整數,最長的0與1的個數相等的子串的長度。樣例輸入 1011 樣例輸出 2 資料範圍限制 30 的資料 串的長度 20 程式 var s ansistr...

NOIP2012普及組T2 尋寶

傳說很遙遠的藏寶樓頂層藏著誘人的寶藏。小明歷盡千辛萬苦終於找到傳說中的這個藏寶樓,藏寶樓的門口豎著乙個木板,上面寫有幾個大字 尋寶說明書。說明書的內容如下 藏寶樓共有 n 1 層,最上面一層是頂層,頂層有乙個房間裡面藏著寶藏。除了頂層外,藏寶樓另有 n 層,每層 m 個房間,這 m 個房間圍成一圈並...

JZ初中OJ 2297 noip普及組2 棋盤

時間限制 1000 ms 空間限制 262144 kb 具體限制 題目描述 眾所周知,西洋棋的棋盤是乙個網格。西洋棋中有一種旗子叫象。象每次移動可以斜著走任意格。即假設乙隻象在網格 x,y 每次移動可以選擇乙個正整數k,使象移到 x k,y k x k,y k x k,y k x k,y k 中的乙...