題目鏈結
很多學校流行一種比較的習慣。老師們很喜歡詢問,從某某到某某當中,分數最高的是多少。
這讓很多學生很反感。
不管你喜不喜歡,現在需要你做的是,就是按照老師的要求,寫乙個程式,模擬老師的詢問。當然,老師有時候需要更新某位同學的成績。
本題目包含多組測試,請處理到檔案結束。
在每個測試的第一行,有兩個正整數 n 和 m ( 0對於每一次詢問操作,在一行裡面輸出最高成績。
5 61 2 3 4 5
q 1 5
u 3 6
q 3 4
q 4 5
u 2 9
q 1 556
59
#include
#include
#include
#include
#include
using
namespace std;
const
int maxn=
2e5+5;
struct node
tr[maxn<
<2]
;int w[maxn]
;voidup(
int u)
void
build
(int u,
int l,
int r)
int mid=
(l+r)
>
>1;
build
(u<
<
1,l,mid)
;build
(u<
<1|
1,mid+
1,r);up
(u);
}void
updata
(int u,
int pos,
int val)
//路徑是遞迴過程先走到底更新,然後在返回來更新
int mid=
(tr[u]
.l+tr[u]
.r)>
>1;
if(pos<=mid)
//更新位置小於mid就說明在左孩子上
updata
(u<
<
1,pos,val)
;else
//更新位置大於mid就說明在右孩子上
updata
(u<
<1|
1,pos,val);up
(u);
//最後更新最大值
}int
quary
(int u,
int l,
int r)
intmain()
else}}
return0;
}
I Hate It(線段樹的區間最大值)
很多學校流行一種比較的習慣。老師們很喜歡詢問,從某某到某某當中,分數最高的是多少。這讓很多學生很反感。不管你喜不喜歡,現在需要你做的是,就是按照老師的要求,寫乙個程式,模擬老師的詢問。當然,老師有時候需要更新某位同學的成績。input 本題目包含多組測試,請處理到檔案結束。在每個測試的第一行,有兩個...
I Hate It(線段樹維護區間最大值)
題意 給定乙個原始陣列,有2種操作,第一種操作是單點修改id為a的學生的成績改為b,第二種操作是詢問區間a到b中分值最大的一位。思路 用線段樹維護區間最大值,每次修改之後不斷向上更新區間最大值即可。include using namespace std typedef long long ll co...
HDU1754 I hate it 線段樹 最大值
description 很多學校流行一種比較的習慣。老師們很喜歡詢問,從某某到某某當中,分數最高的是多少。這讓很多學生很反感。不管你喜不喜歡,現在需要你做的是,就是按照老師的要求,寫乙個程式,模擬老師的詢問。當然,老師有時候需要更新某位同學的成績。input 本題目包含多組測試,請處理到檔案結束。在...