_bzoj1012 [JSOI2008]最大数maxnumber【Fenwick Tree】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1012
裸的树状数组。
#include <cstdio>
#include <algorithm>
const int maxm = 200005;
int m, d, c[maxm], n, t1, t;
char opr;
inline void upd(int pos, int val) {
	while (pos) {
		c[pos] = std::max(c[pos], val);
		pos -= (pos & (-pos));
	}
}
inline int qry(int pos) {
	int rt = -2147483647;
	while (pos <= n) {
		rt = std::max(rt, c[pos]);
		pos += (pos & (-pos));
	}
	return rt;
}
int main(void) {
	scanf("%d%d", &m, &d);
	while (m--) {
		while ((opr = getchar()) < 'A');
		scanf("%d", &t1);
		if (opr == 'A') {
			upd(++n, (int)((long long)(t1 + t) % d));
		}
		else {
			printf("%d\n", t = qry(n - t1 + 1));
		}
	}
	return 0;
}
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号