hihococer 1077 线段树
来源:互联网 发布:淘宝嘉年华持续时间 编辑:程序博客网 时间:2024/05/24 02:42
HIHO 1077
裸题, 直接zkw线段树
code:
/*adrui's submission language : C++Result : Acceptedlove : llfavorite : Dragon BallsStanding in the Hall of Fame*/#include<cstdio>#include<algorithm>#include<cstring>using namespace std;#define debug 0#define inf 0x3f3f3f3f#define M(a, b) memset(a, b, sizeof(a))const int maxn = 1e6 + 5;int mx[maxn << 2], n, M;void build() {M(mx, inf);for (M = 1; M <= n + 1; M <<= 1);for (int i = M + 1; i <= M + n; i++) {scanf("%d", &mx[i]);}for (int i = M - 1; i; i--) {mx[i] = min(mx[i << 1], mx[i << 1 | 1]);}}void update() {int a, b;scanf("%d%d", &a, &b);for (mx[a += M] = b, a >>= 1; a; a >>= 1)mx[a] = min(mx[a << 1], mx[a << 1 | 1]);}int query() {int l, r;scanf("%d%d", &l, &r);l += M - 1;r += M + 1;int ans = inf;while (r ^ l ^ 1) {if (~l & 1) {ans = min(ans, mx[l + 1]);}if (r & 1) {ans = min(ans, mx[r - 1]);}r >>= 1;l >>= 1;}return ans;}int main() {#if debugfreopen("in.txt", "r", stdin);#endif //debugint q, t;while (~scanf("%d", &n)) {build();scanf("%d", &q);while (q--) {scanf("%d", &t);if (t)update();elseprintf("%d\n", query());}}return 0;}
1 0
- hihococer 1077 线段树
- hihocoder 1077线段树
- 线段树?线段树!
- 线段树?线段树!
- 线段_线段树
- 线段_线段树
- 线段树水题 #1077 : RMQ问题再临-线段树
- 线段树
- 线段树
- 线段树
- 线段树
- 线段树
- 线段树
- 线段树
- 线段树
- 线段树
- 线段树
- 线段树
- 【Python开发】Lambda表达式使用
- 渲染世界的OPENGL<16>纹理进阶-纹理数组
- Java关闭线程的安全方法
- python的应用
- linux网络 socket
- hihococer 1077 线段树
- oc中import和include的区别
- hdu 3823 素数打表+vector可变长数组 好烦的一道好题。。。。。
- hdu1233
- Android酷炫实用的开源框架(UI框架)
- 数据结构--排序
- 黑客技术之“手动操作栈”
- RxJava 2.0中backpressure(背压)概念的理解
- 前端学习之jQuery