維護乙個初始為空的數列,支援以下兩種操作,操作共m次:
1.查詢當前數列中末尾k個數中的最大的數。
2.將x插入到數列的末尾。
維護乙個線段樹,支援單點修改,區間查詢
#include #include #include using namespace std;
typedef long long ll;
ll m, x, k, t, mod, cnt;
ll a[400010];
char opt;
void push_up(ll x)
void add(ll x, ll l, ll r, ll n, ll k)
ll mid = l + r >> 1;
if (n <= mid) add(x << 1, l, mid, n, k);
if (n > mid) add(x << 1 | 1, mid + 1, r, n, k);
push_up(x);
}ll query(ll x, ll l, ll r, ll l1, ll r1, ll ans = 0)
int main()
else
}}
洛谷 P1198 JSOI2008 最大數
p1198 jsoi2008 最大數現在請求你維護乙個數列,要求提供以下兩種操作 1 查詢操作。語法 q l 功能 查詢當前數列中末尾l個數中的最大的數,並輸出這個數的值。限制 l不超過當前數列的長度。2 插入操作。語法 a n 功能 將n加上t,其中t是最近一次查詢操作的答案 如果還未執行過查詢操...
洛谷P1198 JSOI2008 最大數
現在請求你維護乙個數列,要求提供以下兩種操作 1 查詢操作。語法 q l 功能 查詢當前數列中末尾l個數中的最大的數,並輸出這個數的值。限制 l不超過當前數列的長度。2 插入操作。語法 a n 功能 將n加上t,其中t是最近一次查詢操作的答案 如果還未執行過查詢操作,則t 0 並將所得結果對乙個固定...
洛谷 P1198 JSOI2008 最大數
序列兩種操作 q l 輸出末尾l個數中的最大值 q 操作用查詢區間最大值即可完成,a 操作需要能夠 add 元素。線段樹明顯可以,理解也比較簡單 這裡採用樹狀陣列維護區間最大值的 板子 來滿足這兩種操作。類封裝的最值 include cstdlib include include include i...