用区间值m表示这段区间的最大值,一直更新这个区间的最大值,很基础的线段树

#include<iostream>
#include<stdio.h>
using namespace std;
#define N 200005
struct node{int l,r,m;
}tree[N*4];
int a[N];
void build(int left,int right,int i){tree[i].l=left;tree[i].r=right;if(tree[i].l==tree[i].r){tree[i].m=a[tree[i].l];return ;}int mid=(tree[i].l+tree[i].r)>>1;build(left,mid,i*2);build(mid+1,right,i*2+1);tree[i].m=max(tree[i*2].m,tree[i*2+1].m);
}
void updata(int left,int right,int i,int val){//   cout<<tree[i].l<<" "<<tree[i].r<<endl;if(left==tree[i].l&&right==tree[i].r){tree[i].m=val;return ;}if(tree[i].l>left || tree[i].r<left) return ;int mid=(tree[i].r+tree[i].l)>>1;updata(left,right,i*2,val);updata(left,right,i*2+1,val);tree[i].m=max(tree[i*2].m,tree[i*2+1].m);
}
int ans=0;
void query(int left,int right,int i){//   cout<<"Q 4 5 "<<left<<" "<<right<<" "<<tree[3].m<<endl;if(tree[i].l==left&&tree[i].r==right){if(tree[i].m>ans)ans=tree[i].m;return ;}int mid=(tree[i].l+tree[i].r)>>1;if(mid>=right)query(left,right,i*2);else if(mid<left)query(left,right,i*2+1);else{query(left,mid,i*2);query(mid+1,right,i*2+1);}}
int main(){
//    freopen("in.txt","r",stdin);int m,n,x,y;char t[5];while(~scanf("%d%d",&n,&m)){for(int i=1;i<=n;i++)scanf("%d",&a[i]);build(1,n,1);while(m--){scanf("%s %d%d",t,&x,&y);
//            cout<<t<<" "<<x<<" "<<y<<endl;if(t[0]=='Q'){ans=0;query(x,y,1);printf("%d\n",ans);}else{updata(x,x,1,y);}}}
}

HDU 1754 I Hate It 基础线段树相关推荐

  1. 题解报告:hdu 1754 I Hate It(线段树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754 Problem Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某 ...

  2. hdu 1754 I Hate It(线段树之 单点更新+区间最值)

    I Hate It                                                                             Time Limit: 90 ...

  3. HDU 1754 I Hate It(线段树)

    点我看题目 题意  :又是一道中问题,我就不说题意了.... 思路 : 线段树,这道题跟1166差不多,改一些地方就差不多了. #include <iostream> #include & ...

  4. [ACM] hdu 1754 I Hate It (线段树,单点更新)

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  5. hdu 1754 I Hate It(线段树/树状数组)

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  6. HDU 1754 I Hate It(线段树单点更改、区间查找最大值)

    Problem Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求, ...

  7. HDU 1754 I hate it【线段树之单点替换区间最值】

    Problem Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求, ...

  8. HDU 1754 I Hate It(线段树版)

    题目链接 找最大,这里居然会超时. 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> ...

  9. 杭电 HDU ACM 1754 I Hate It (线段树)

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  10. HDU - 1255 覆盖的面积(线段树求矩形面积交 扫描线+离散化)

    链接:线段树求矩形面积并 扫描线+离散化 1.给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积. 2.看完线段树求矩形面积并 的方法后,再看这题,求的是矩形面积交,类同. 求面积时,用被覆 ...

最新文章

  1. 求组合数python_给定一个序列求指定位数的排列组合数
  2. 在正确的方向坚持下去,一直坚持下去,直到有成果
  3. java中apache安装与配置_Apache应用服务器之四:Apache与Tomcat安装与配置
  4. 从wordpress到octopress
  5. InterlockedIncrement
  6. Linux中$PATH详解
  7. [HDOJ]1018. Big Number
  8. centos6.5安装mono
  9. .Net中的数字和日期格式化规则助记词
  10. matlab green函数,地基土的传Green函数编辑中……
  11. mysql sql语句递归查询语句_SQL实现MYSQL递归查询的方法
  12. PHP开发APP接口实现--基本篇
  13. 使用prettier统一编码风格
  14. 联想y50更换固态硬盘_【联想Y50-70】更换固态硬盘,极速开机~
  15. 如何在Node中将PDF每页转换为图片以及PDF各种操作
  16. 美团外卖小哥竟开发阿里云盘,抢先首发
  17. 无法启动系统时间服务器,Win10系统不能启动Windows Time服务怎么办?
  18. MTK Camera 基础知识
  19. 小红书用户画像分析_2020小红书爆品打造策略及案例分析!
  20. android 模拟器 启动,android开发之启动模拟器并安装游戏apk

热门文章

  1. Java设计模式之接口型模式总结
  2. 在Linux下禁用IPv6的方法小结
  3. 通俗易懂地讲解 __block 变量
  4. 两个多变量分布间的KL散度+变分子编码
  5. FPGA远程更新之限制条件
  6. 数据结构: 树 (查找树)
  7. jQuery EasyUI 使用笔记
  8. bzoj4008: [HNOI2015]亚瑟王
  9. iOS中处理时间的类
  10. java class 文件