博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 1754 线段树裸题
阅读量:6955 次
发布时间:2019-06-27

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

水题

#include
#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define Maxn 205555int max[Maxn<<2];int N,M;void Pushup(int rt){ max[rt]=max[rt<<1]>max[rt<<1|1]?max[rt<<1]:max[rt<<1|1];}void build(int l,int r,int rt){ int m; if(l==r){scanf("%d\n",&max[rt]);return ;} m=(l+r)>>1; build(lson); build(rson); Pushup(rt);}int updata(int p,int k,int l,int r,int rt){ int m; if(l==r){max[rt]=k;return 0;} m=(l+r)>>1; if(p<=m) updata(p,k,lson); else updata(p,k,rson); Pushup(rt);}int query(int L,int R,int l,int r,int rt){ int m,k1=0,k2=0; if(L<=l&&r<=R) return max[rt]; m=(l+r)>>1; if(L<=m) k1=query(L,R,lson); if(R>m) k2=query(L,R,rson); return k1>k2?k1:k2;}int main(){ int i,a,b; char ch; while(scanf("%d%d",&N,&M)==2) { build(1,N,1); for(i=1;i<=M;i++) { scanf("%c%d%d\n",&ch,&a,&b); if(ch=='U') updata(a,b,1,N,1); if(ch=='Q') printf("%d\n",query(a,b,1,N,1)); } } return 0;}

转载于:https://www.cnblogs.com/zy691357966/archive/2012/06/11/5480502.html

你可能感兴趣的文章
SELECT INTO 和 replace into SELECT
查看>>
向日葵
查看>>
Linux下编译安装LAMP并分离为多台服务器
查看>>
强烈推荐!大数据领域的顶级开源工具大集合
查看>>
LinkedHashMap与HashMap的使用比较
查看>>
平台: pSeries AIX 4.3 AIX 5L
查看>>
程序员最应该读的图书
查看>>
Python OS模块
查看>>
学习XPath
查看>>
如何让你的SQL运行得更快(二)
查看>>
Apache Shiro学习笔记(七)IniWebEnvironment
查看>>
打造个人专属的微型linux--启动原理篇
查看>>
进程间通信之管道与有名管道
查看>>
JMeter基础之—录制脚本
查看>>
我的友情链接
查看>>
CentOS 7搭建tengine+php+mariadb环境并安装discuz论坛
查看>>
《Oracle从入门到精通》读书笔记第三章 SQL*PLUS命令
查看>>
thinkphp-更新数据update函数
查看>>
70个具有商业实战性的精品Android源码
查看>>
SQLIO 模拟随机或者顺序的方式来测试磁盘IO的性能
查看>>