很多學校流行一種比較的習慣。老師們很喜歡詢問,從某某到某某當中,分數最高的是多少。
這讓很多學生很反感。
不管你喜不喜歡,現在需要你做的是,就是按照老師的要求,寫乙個程式,模擬老師的詢問。當然,老師有時候需要更新某位同學的成績。
input
本題目包含多組測試,請處理到檔案結束。
在每個測試的第一行,有兩個正整數 n 和 m ( 0output
對於每一次詢問操作,在一行裡面輸出最高成績。
sample input
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
#include #include #include #include #include #include using namespace std;
#define lson l,m,i*2
#define rson m+1,r,i*2+1
const int maxn=2e5+10;
typedef struct node
}node;
node node[maxn*4];
void push_up(int i)
void build(int l,int r,int i)
int m=node[i].mid(); //m=(l+r)/2.0
build(lson); //build(l,m,i*2)
build(rson); //build(m+1,r,i*2+1)
push_up(i);
}void update(int l,int r,int i,int v,int num) //單點更新
int m=node[i].mid();
if(m>=num)
update(l,m,i*2,v,num);
else
update(m+1,r,i*2+1,v,num);
push_up(i);
}int m;
void query(int l,int r,int i) //查詢
int m=node[i].mid();
if(r<=m)
else
else
}}int main()
node;
node node[maxnode];
int father[max];
void buildtree(int i,int left,int right)
else
}void update(int ri)
int m;
void query(int i,int l,int r)
i = i << 1;
if(l <= node[i].right)
else
}i += 1;
if(r >= node[i].left)
else
}}int main()
string s;
while(cin >> s && s[0] != 'e')
if(s[0] == 'a')
if(s[0] == 's')}}
}
Python習題集(四)
如果乙個 3 位數等於其各位數字的立方和,則稱這個數為水仙花數。例如 153 1 3 5 3 3 3,因此 153 就是乙個水仙花數 那麼問題來了,求1000以內的水仙花數 3位數 int轉字串序列,獲取到每一位數 呼叫math.pow函式求立方和 三個數字立方和相加 lists for i in ...
Python習題集(十二)
請寫乙個函式find odd,引數是1個列表,請返回該列表 現奇數次的元素 比如 find odd 1,1,2,2,5,2,4,4,1,2,5 1 find odd 20,1,1,2,2,3,3,5,5,4,20,4,5 5 find odd 10 10 迴圈列表 呼叫列表內建統計函式計算當前元素出...
Python習題集(十六)
寫乙個函式replace,該函式引數是兩個字串,第乙個引數給出乙個源,第二個引數是指定範圍。要求該函式將 第乙個引數裡面的字串中 落在第二個引數指定範圍內的字串替換為 號 比如replace abcdef c e ab f replace rattle r z a le replace micros...