hdu 1754(I hate it) 线段树
来源:互联网 发布:python 打开txt文件 编辑:程序博客网 时间:2024/05/22 10:50
题目链接:点击打开链接
题目分析:非常好的模板题,适合入门,操作包括,区间询问,区间更改。需要注意的是数组的大小
相关链接学习:点击打开链接
#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace std;#define maxn 200005#define infint n,m,a,b,c=0;int MAX[maxn<<2];void build(int l,int r,int rt){ if(l==r) {scanf("%d",&MAX[rt]);return;} int m=(r+l)/2; build(l,m,rt<<1); build(m+1,r,rt<<1|1); MAX[rt] = max(MAX[rt<<1] , MAX[rt<<1|1]);}void update(int rt, int l,int r){ int m=(r+l)/2; if(l==r) {MAX[rt]=b;return;} if(a<=m) update(rt<<1,l,m); else update(rt<<1|1,m+1,r); MAX[rt]=max(MAX[rt<<1] , MAX[rt<<1|1]);}int query(int rt,int l,int r){ int m=(l+r)/2,ans=0; if(a<=l&&r<=b) return MAX[rt]; if(a<=m) ans=max(ans,query(rt<<1,l,m)); if(m<b) ans=max(ans,query(rt<<1|1,m+1,r)); return ans;}int main(){ freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); int i,j; char q[5]; while(~scanf("%d%d",&n,&m)) { build(1,n,1); while(m--) { scanf("%s%d%d",q,&a,&b); if(q[0]=='Q') printf("%d\n",query(1,1,n)); else update(1,1,n); } } return 0;}
- HDU 1754 I Hate It 线段树
- [hdu] 1754 I hate it -- 线段树
- hdu 1754 -- I Hate It (线段树)
- HDU 1754 I Hate It 线段树
- 线段树 hdu 1754 I Hate It
- HDU 1754 I Hate It(线段树)
- hdu 1754 (线段树)I Hate It
- hdu-1754 I Hate It 线段树
- HDU--1754 -- I Hate It [线段树]
- 【线段树】hdu 1754 I hate it
- hdu - 1754 I Hate It(线段树)
- HDU--1754--I Hate It--线段树
- HDU-1754 I Hate It 线段树
- hdu 1754 I Hate It 线段树
- HDU-1754-I Hate It(线段树)
- HDU 1754 I Hate It (线段树)
- hdu 1754 I hate it(线段树)
- 【HDU】 1754 I Hate It 线段树
- 大型网站架构不得不考虑的10个问题
- Effective STL 09 删除元素
- 10月17日,微软开始推送Win8.1更新,批量激活用户不在此列
- 质数(素数)
- shell如何将标准错误输出重定向为标准输出
- hdu 1754(I hate it) 线段树
- 关于架构的讨论:烦人的细节
- 领导人卡通形象也是走群众路线
- XtraReports pageheight 属性不能改
- pdf转换swf
- linux下如何将c++程序编译成so,如何调用该so文件
- 验证控件
- Android开发需要的能力
- 拿破仑希尔----“自制的七个C”