很多學校流行一種比較的習慣。老師們很喜歡詢問,從某某到某某當中,分數最高的是多少。
這讓很多學生很反感。
不管你喜不喜歡,現在需要你做的是,就是按照老師的要求,寫乙個程式,模擬老師的詢問。當然,老師有時候需要更新某位同學的成績。
input
本題目包含多組測試,請處理到檔案結束。
在每個測試的第一行,有兩個正整數 n 和 m ( 0
5 6
1 2 3 4 5
q 1 5
u 3 6
q 3 4
q 4 5
u 2 9
q 1 5
sample output
565
9
hint
huge input,the c function
scanf
() will work better than cin
#include
#include
#include
#include
#include
using
namespace
std;
const
int maxn = 200000;
struct nood tree[maxn * 4 + 5];
int n, m;
int a[maxn + 5];
void build(int l, int r, int x)
int mid = (l + r) / 2;
build(l, mid, x * 2);
build(mid + 1, r, x * 2 + 1);
tree[x].max = max(tree[x * 2].max, tree[x * 2 + 1].max);
}void pushdown(int x)
}void update(int l, int r, int add, int x)
pushdown(x);
int mid = (tree[x].l + tree[x].r) / 2;
if(l <= mid)update(l, r, add, x * 2);
if(r > mid)update(l, r, add, x * 2 + 1);
tree[x].max = max(tree[x * 2].max, tree[x * 2 + 1].max);
}int query(int l, int r, int x)
int main()
}return
0;}
posted @
2018-07-11 11:26
呵呵!!! 閱讀(
...)
編輯收藏
線段樹單點修改區間查詢
這是一道模板題。給定數列 a 1 a 2 a n 你需要依次進行 qq 個操作,操作有兩類 1 i x 給定 i,x,將 a i 加上 x 2 l r 給定 l,r,求 ri la i 的值 換言之,求 a l a l 1 a r 的值 input 第一行包含 2 個正整數 n,q,表示數列長度和詢...
HDU1166 線段樹 單點修改區間查詢
c國的死對頭a國這段時間正在進行軍事演習,所以c國間諜頭子derek和他手下tidy又開始忙乎了。a國在海岸線沿直線布置了n個工兵營地,derek和tidy的任務就是要監視這些工兵營地的活動情況。由於採取了某種先進的監測手段,所以每個工兵營地的人數c國都掌握的一清二楚,每個工兵營地的人數都有可能發生...
線段樹模板(單點修改 區間查詢)
1547 例 1 區間和 時間限制 1000 ms 記憶體限制 524288 kb 提交數 2072 通過數 639 題目描述 給定一數列,規定有兩種操作,一是修改某個元素,二是求區間的連續和。輸入 輸入資料第一行包含兩個正整數n,m n 100000,m 500000 以下是m行,每行有三個正整數...