博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线段树(单点修改)
阅读量:5341 次
发布时间:2019-06-15

本文共 1744 字,大约阅读时间需要 5 分钟。

#include 
using namespace std;inline int read() { int x = 0,ff = 1; char ch = getchar(); while(!isdigit(ch)) { if(ch == '-') ff = -1; ch = getchar(); } while(isdigit(ch)) { x = (x << 1) + (x << 3) + (ch ^ 48); ch = getchar(); } return x * ff;}inline void write(int x) { if(x < 0) putchar('-'),x = -x; if(x > 9) write(x / 10); putchar(x % 10 + '0');}const int INF = 0x3f3f3f3f;const int MAXN = 5e5 + 100;const int MAXM = 3e3 + 10;int n,a[MAXN];struct Tree { int left,right; int dat;}t[MAXN];void build(int p,int l,int r) { t[p].left = l; t[p].right = r; if(l == r) { t[p].dat = a[l]; return ; } int mid = (l + r) / 2; build(p * 2,l,mid); build(p * 2 + 1,mid + 1,r); t[p].dat = max(t[p * 2].dat,t[p * 2 + 1].dat);}void change(int p,int x,int v) { if(t[p].left == t[p].right) { t[p].dat = v; return ; } int mid = (t[p].left + t[p].right) / 2; if(x <= mid) change(p * 2,x,v); else change(p * 2 + 1,x,v); t[p].dat = max(t[p * 2].dat,t[p * 2 + 1].dat);}int ask(int p,int l,int r) { if(l <= t[p].left && r >= t[p].right) return t[p].dat; int mid = (t[p].left + t[p].right) / 2; int val = -INF; if(l <= mid) val = max(val,ask(p * 2,l,r)); if(r > mid) val = max(val,ask(p * 2 + 1,l,r)); return val;}int main() { n = read(); build(1,1,n); for(int i = 1; i <= n; ++i) { int op; op = read(); if(op == 1) { int x,v; x = read(); v = read(); change(1,x,v); } else { int l,r; l = read(); r = read(); write(ask(1,l,r)); putchar('\n'); } } return 0;}

 

转载于:https://www.cnblogs.com/AK-ls/p/10610610.html

你可能感兴趣的文章
egret3D与2D混合开发,画布尺寸不一致的问题
查看>>
struts1和struts2的区别
查看>>
Redis常用命令
查看>>
微软职位内部推荐-Sr. SE - Office incubation
查看>>
套接口和I/O通信
查看>>
阿里巴巴面试之利用两个int值实现读写锁
查看>>
浅谈性能测试
查看>>
Winform 菜单和工具栏控件
查看>>
CDH版本大数据集群下搭建的Hue详细启动步骤(图文详解)
查看>>
巧用Win+R
查看>>
浅析原生js模仿addclass和removeclass
查看>>
Python中的greenlet包实现并发编程的入门教程
查看>>
java中遍历属性字段及值(常见方法)
查看>>
YUI3自动加载树实现
查看>>
like tp
查看>>
DCDC(4.5V to 23V -3.3V)
查看>>
kettle导数到user_用于left join_20160928
查看>>
较快的maven的settings.xml文件
查看>>
随手练——HDU 5015 矩阵快速幂
查看>>
SDK目录结构
查看>>