b - 單點更新2
time limit:3000msmemory limit:32768kb64bit io format:%i64d & %i64u
submit
status
description
很多學校流行一種比較的習慣。老師們很喜歡詢問,從某某到某某當中,分數最高的是多少。
這讓很多學生很反感。
不管你喜不喜歡,現在需要你做的是,就是按照老師的要求,寫乙個程式,模擬老師的詢問。當然,老師有時候需要更新某位同學的成績。
input
本題目包含多組測試,請處理到檔案結束。
在每個測試的第一行,有兩個正整數 n 和 m ( 0
output
對於每一次詢問操作,在一行裡面輸出最高成績。
sample input
5 61 2 3 4 5
q 1 5
u 3 6
q 3 4
q 4 5
u 2 9
q 1 5
sample output
5659
這道題跟第一題幾乎類似,建樹,求最大值,更新某個點的值,不過要注意的是這道題得從後往前更新也就是孩子結點更新了父節點也得更新,然後你可以在建樹的過程中更新這棵線段樹,就省得在主函式裡面更新了- -額這都不是什麼太大的問題,當然這道題別忘了getchar()否則你一跑就跪了- -。。。
#include#include#include#include#includeusing namespace std;
struct linetree[1000000];
int a[200000];
void get(int l,int r,int k)
else
}int q(int l,int r,int k)
int mid=(tree[k].left+tree[k].right)/2;
if(r<=mid)
if(l>mid)
return max(q(l,mid,k*2),q(mid+1,r,k*2+1));
}void u(int s,int t,int k)
int mid=(tree[k].left+tree[k].right)/2;
if(s<=mid)
else
}int main()
getchar();
char c;
int s,e;
get(1,n,1);
for(i=0;i
再來一道面試IQ題
又是一道面試中的題目,和之前那道有著異曲同工之妙,有興趣的朋友可以當作休閒來做一下 小明和小強都是張老師的學生,張老師的生日是m月n日,2人都知道張老師的生日是下列10組中的一天,張老師把m值告訴了小明,把n值告訴了小強,張老師問他們知道他的生日是那一天嗎?3月4日 3月5日 3月8日 6月4日 6...
線段樹 博弈 一道博弈題
障礙點數和詢問點數都是1e5 座標範圍為1e9 實際資料既然有大於1e9的 乙個點的下方或左邊存在必敗點,則為必勝點,否則為必敗點 同一行的障礙會把這一行分成很多段,段與段之間是互不影響的。考慮同一段的點,若其中乙個點為必敗點,則之後的點一定是必勝點,也就是說要找到第乙個必敗點 但是有很多行,直接列...
一天一道演算法題 線段樹
題目 模板 線段樹1 rmq問題 range minimum maximum query 和求區間和的問題可以用暴力法做,時間複雜度為o n 2 用在本題會超時,所以我們選擇線段樹做。線段樹是一種用於區間操作的資料結構,用二叉樹構造。如圖。線段樹的每個節點代表了乙個區間。防止超時,用了lazy標記。...