洛谷1198 最大數

2022-03-25 22:20:20 字數 780 閱讀 6524

寫了那麼多xx樹和單調佇列後,不如試試爽翻天的倍(r)增(m)吧(q)。

對於每乙個點,維護從它為起點向左2^j長度的最大值。

查詢的時候從大往小列舉2^j更新最大值就行。

(等等好像**注釋裡面寫過這些了)

(不保證**的正確性。。。反正洛谷的資料水過了。。。)

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7

8using

namespace

std;

910 typedef long

long

ll;11

12char s[10

];13 ll m, d, a[300000], f[300000][30

], x, p, t;

1415

/*16

f[i][j] : 從i開始,往左2^j長度的最大值。

17f[i][0] = a[i]

18f[i][j] = max(f[i][j - 1], f[i - (1 << (j - 1))][j - 1])

1920

1 2 3 4 5 6 7 8

21*/

2223 ll ask(int l, int

p)33}34

}35return

ret;36}

3738

intmain()else52}

53}54}

55 }

view code

洛谷1198最大數(線段樹)

現在請求你維護乙個數列,要求提供以下兩種操作 1 查詢操作。語法 q l 功能 查詢當前數列中末尾l個數中的最大的數,並輸出這個數的值。限制 l不超過當前數列的長度。2 插入操作。語法 a n 功能 將n加上t,其中t是最近一次查詢操作的答案 如果還未執行過查詢操作,則t 0 並將所得結果對乙個固定...

洛谷 P1198 最大數

題目描述 現在請求你維護乙個數列,要求提供以下兩種操作 1 查詢操作。語法 q l 功能 查詢當前數列中末尾l個數中的最大的數,並輸出這個數的值。限制 l不超過當前數列的長度。2 插入操作。語法 a n 功能 將n加上t,其中t是最近一次查詢操作的答案 如果還未執行過查詢操作,則t 0 並將所得結果...

洛谷1198 最大數 線段樹

現在請求你維護乙個數列,要求提供以下兩種操作 1 查詢操作。語法 q l 功能 查詢當前數列中末尾l個數中的最大的數,並輸出這個數的值。限制 l不超過當前數列的長度。l 0 2 插入操作。語法 a n 功能 將n加上t,其中t是最近一次查詢操作的答案 如果還未執行過查詢操作,則t 0 並將所得結果對...