• hdu1754 I Hate It(线段树单点更新,区间查询)


    传送门

    有更新单个学生成绩和查询某个区间内学生成绩最大值两种操作

    线段树代码

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 const int maxn=200000+5;
     4 using namespace std;
     5 int a[maxn*4];
     6 const int INF=0x3f3f3f3f;
     7 void PushUp(int i)
     8 {
     9     a[i]=max(a[i*2],a[i*2+1]);
    10 }
    11 void build(int i,int l,int r)
    12 {
    13     if(l==r)
    14     {
    15         scanf("%d",&a[i]);
    16         return;
    17     }
    18     int m=(l+r)/2;
    19     build(i*2,l,m);
    20     build(i*2+1,m+1,r);
    21     PushUp(i);
    22 }
    23 int query(int ql,int qr,int i,int l,int r)
    24 {
    25     if(ql<=l&&r<=qr)
    26         return a[i];
    27     int m=(l+r)/2;
    28     int maxx=-INF;
    29     if(ql<=m)
    30         maxx=max(maxx,query(ql,qr,i*2,l,m));
    31     if(qr>m)
    32         maxx=max(maxx,query(ql,qr,i*2+1,m+1,r));
    33     return maxx;
    34 }
    35 void update(int id,int val,int i,int l,int r)
    36 {
    37     if(l==r)
    38     {
    39         a[i]=val;
    40         return;
    41     }
    42     int m=(l+r)/2;
    43     if(id<=m)
    44         update(id,val,i*2,l,m);
    45     else
    46         update(id,val,i*2+1,m+1,r);
    47     PushUp(i);
    48 }
    49 int main()
    50 {
    51     int n,m;
    52     while(~scanf("%d %d",&n,&m))
    53     {
    54         build(1,1,n);
    55         while(m--)
    56         {
    57             char str[10];
    58             int x,y;
    59             scanf("%s%d%d",str,&x,&y);
    60             if(str[0]=='Q')
    61                 printf("%d
    ",query(x,y,1,1,n));
    62             else
    63                 update(x,y,1,1,n);
    64         }
    65     }
    66     return 0;
    67 }
    View Code
  • 相关阅读:
    原创 ios绘制 圆形气泡
    ios 线程安全单例写法
    (转)ios中点击地图控件MKMapView的某点获取该点的经纬度
    使用正则提取url(iOS)
    MAC系统崩溃,使用命令行复制硬盘内容
    UISearchBar控件UI操作
    app发布流程详解
    App Store审核指南(中文版)2010版
    GCD详解
    iOS扫描二维码(系统方法)
  • 原文地址:https://www.cnblogs.com/fqfzs/p/9980811.html
Copyright © 2020-2023  润新知