HDU 1754 线段树单点更新求最大值
来源:互联网 发布:淘宝卖家实拍保护在哪 编辑:程序博客网 时间:2024/06/05 21:02
#include <map>#include <set>#include <list>#include <cmath>#include<cctype>#include <ctime>#include <deque>#include <stack>#include <queue>#include <cstdio>#include <string>#include <vector>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>#define LL long long#define PI 3.1415926535897932626using namespace std;int gcd(int a, int b){return a % b == 0 ? b : gcd(b, a % b);}#define MAXN 200004struct node{ int l ,r; int Max;}tree[MAXN*4];int src[MAXN];void buildtree(int id,int l ,int r){ tree[id].l=l;tree[id].r=r; if (l==r) { tree[id].Max=src[l]; } else { int m=(l+r)/2; buildtree(id*2,l,m); buildtree(id*2+1,m+1,r); tree[id].Max=max(tree[id*2].Max,tree[id*2+1].Max); }}void update(int id ,int pos ,int val){ if (tree[id].l==tree[id].r && tree[id].l==pos) { tree[id].Max=val; } else { int m=(tree[id].l+tree[id].r)/2; if (pos>m) update(id*2+1,pos,val); else update(id*2,pos,val); tree[id].Max=max(tree[id*2].Max,tree[id*2+1].Max); }}int query(int id,int l ,int r){ if (tree[id].l==l && tree[id].r==r) { return tree[id].Max; } else { int m=(tree[id].l+tree[id].r)/2; if (m>=r) return query(id*2,l,r); else if (l>m) return query(id*2+1,l,r); else return max(query(id*2,l,m),query(id*2+1,m+1,r)); }}int main(){ int N,M; while (~scanf("%d%d",&N,&M)) { for (int i=1;i<=N;i++) scanf("%d",&src[i]); buildtree(1,1,N); char input[3];int a,b; while (M--) { scanf("%s%d%d",input,&a,&b); //printf("%s%d%d\n",input,a,b); if (input[0]=='Q') printf("%d\n",query(1,a,b)); else update(1,a,b); } } return 0;}
0 0
- HDU 1754 线段树单点更新求最大值
- hdu 1754 线段树单点更新求最大值
- HDU 2795 Billboard (线段树 单点更新 区间求最大值)
- HDU 1754 I Hate It(线段树:单点更新,求区间最大值)
- hdu 1754 I Hate It(线段树单点更新求区间最大值)
- 【线段树-单点更新区间最大值】hdu 1754
- 线段树求区间最大值RMQ(单点更新)
- 线段树(单点更新,区间求最大值)
- 线段树 单点更新查询 区间最大值 hdu 2795 Billboard
- HDU 2795 Billboard 线段树,区间最大值,单点更新
- HDOJ 题目1754 I Hate It(线段树单点更新,求区间最大值)
- HDOJ 1754 I Hate It(线段树—求区间最大值与单点更新)
- HDOJ 1754 I Hate It (线段树单点更新求区间最大值)
- poj 1754 I Hate It --线段树(单点更新,区间求最大值)
- HDU 1754 I Hate It(线段树--单点赋值, 区间求最大值)
- HDU 1754 I Hate It(线段树 单点更新 区间最大值)
- HDOJ 1754 单点更新段查询最大值 初级线段树
- HDU--I Hate It (线段树求最大值加更新)
- 收藏下一个适合用来做宣传页背景的色调和CSS代码
- Construct Binary Tree from Inorder and Postorder Traversal
- 维吾尔族大学生:我没有伤害人 却有负罪感
- 白话Java应用打包
- hdu2602 Bone Collector (01背包)
- HDU 1754 线段树单点更新求最大值
- 基于中颖SH88F516驱动TM1640的LED数码管驱动程序
- vs2008快捷键
- TM1640操作源码--LED驱动IC
- java nio 之MappedByteBuffer
- ZooKeeper做独立服务器运行(上)
- Linux上获取CPU Core个数的实现
- 跨平台的网络云盘软件设计实现【二】
- 关于预编译头文件