HDU 1754(线段树点修改模板题)
来源:互联网 发布:java long 最大长度 编辑:程序博客网 时间:2024/06/06 00:24
HDU 1754
题目大意
不断地进行询问某个区间的最大值和修改某个数的操作
代码
#include<cstdio>#include<iostream>#include<cmath>#include<cstring>#include<cstdlib>#include<queue>#include<map>#include<algorithm>#include<set>#include<stack>using namespace std;const int INF=0x77777777;const int MAXN=200005;int n,m;int A[2000005];int maxm[4000005];void Pushup(int rt)//Pushup函数假设rt的儿子都已经更新好了,对rt进行更新{ maxm[rt]=max(maxm[rt*2],maxm[rt*2+1]);}void Build(int l,int r,int rt)//建树{ if(l==r){maxm[rt]=A[l];return ;} int m=(l+r)/2; Build(l,m,rt*2); Build(m+1,r,rt*2+1); Pushup(rt);}void Update(int X,int C,int l,int r,int rt)//将某个节点X修改为C{ if(l==r){maxm[rt]=C;return ;} int m=(l+r)/2; if(X<=m)Update(X,C,l,m,rt*2); else Update(X,C,m+1,r,rt*2+1); Pushup(rt);}int Query(int L,int R,int l,int r,int rt)//L R为查询区间,该函数返回(L,R)与(l,r)交集中的最大值{ int ans=-INF; int m=(l+r)/2; if(L<=l && r<=R)return maxm[rt]; if(L<=m)ans=max(ans,Query(L,R,l,m,rt*2)); if(R>m)ans=max(ans,Query(L,R,m+1,r,rt*2+1)); return ans;}int main(){ int a,b; char c; while(scanf("%d%d",&n,&m)!=EOF) { for(int i=1;i<=n;i++)scanf("%d",&A[i]); Build(1,n,1); for(int i=1;i<=m;i++) { scanf("%c",&c); while(c=='\n')scanf("%c",&c); scanf("%d%d",&a,&b); if(c=='Q')printf("%d\n",Query(a,b,1,n,1)); else if(c=='U'){Update(a,b,1,n,1);} } } return 0;}
0 0
- HDU 1754(线段树点修改模板题)
- 题集+模板:线段树[1]点修改 区间查找 hdu 2795+1394+1754+4302
- 线段树模板:点修改,区间修改
- 模板:线段树(1)点修改
- 线段树模板(点修改)
- HDU 1166 敌兵布阵 (线段树点更新模板题)
- HDU 1166 敌兵布阵 (我的树状数组加线段树点修改模板)
- HDU 1754I Hate It 线段树点修改问题
- hdu 1754 I Hate It 线段树 点修改
- hdu 1754 I Hate It(线段树点修改)
- HDU - 1754 I Hate It(线段树,点修改)
- HDU-1754 I Hate It (线段树 入门题 点修改 区间查询)
- HDU 1754 线段树模板
- 线段树-点修改--点查询--最值查询 Hdu 1754I Hate It
- HDU 1166 敌兵布阵 (线段树点更新/模板)
- hdu 1166 线段树 点更新(孙启龙模板)
- hdu 1698 线段树的区间修改 模板~~
- HDU 1698-I Hate It (线段树,点修改)
- 卷积神经网络(CNN)反向传播算法
- 数据集质量提升方法及代码实现
- 地基双目视觉与扩展卡尔曼滤波在无人机起降引导中的应用
- Thymeleaf 模板的使用--注意事项
- linux常用命令
- HDU 1754(线段树点修改模板题)
- 170306
- XMLHTTP中setRequestHeader参数问题
- 进程
- Java----Socket编程之模拟客户端Client
- 哈工大操作系统实验 5 地址映射与共享
- HTML5 time元素
- 从源码出发浅析Android TV的焦点移动原理
- Majority Element