zoukankan      html  css  js  c++  java
  • 1754 I Hate It

    http://acm.hdu.edu.cn/showproblem.php?pid=1754

    线段树功能:

    #include<cstdio>
    #include<cstdlib>
    #include<cmath>
    #include<cstring>
    #define MAXN 200005
    int seg_tree[MAXN<<2];
    void build_tree(int l,int r,int id);
    int query_tree(int left,int right,int l,int r,int id);
    void update_point_tree(int left,int right,int value,int l,int r,int id);
    void push_up_tree(int id);
    int main()
    {
    int tcase,n,i,left,right,value,m;
    char str[20];
    while(scanf("%d%d",&n,&m)==2)
    {
    build_tree(1,n,1);
    while(m--)
    {
    scanf("%s",str);
    if(str[0]=='Q')
    {
    scanf("%d%d",&left,&right);
    printf("%d\n",query_tree(left,right,1,n,1));
    }
    if(str[0]=='U')
    {
    scanf("%d%d",&left,&value);
    update_point_tree(left,right,value,1,n,1);
    }
    }
    }
    }
    void build_tree(int l,int r,int id)
    {
    if(l==r)
    {
    scanf("%d",&seg_tree[id]);
    return ;
    }
    int mid=(l+r)/2;
    build_tree(l,mid,id<<1);
    build_tree(mid+1,r,id<<1|1);
    push_up_tree(id);
    
    }
    int query_tree(int left,int right,int l,int r,int id)
    {
    if(left<=l&&right>=r)
    return seg_tree[id];
    int mid=(l+r)>>1,ret0=0,ret1=0;
    if(left<=mid)
    ret0=query_tree(left,right,l,mid,id<<1);
    if(right>mid)
    ret1=query_tree(left,right,mid+1,r,id<<1|1);
    return ret0>=ret1?ret0:ret1;
    }
    void update_point_tree(int left,int right,int value,int l,int r,int id)
    {
    if(l==r)
    {    seg_tree[id]=value;
    return ;}
    int mid=(l+r)>>1;
    if(left<=mid)
    update_point_tree(left,right,value,l,mid,id<<1);
    else 
    update_point_tree(left,right,value,mid+1,r,id<<1|1);
    push_up_tree(id);
    }
    void push_up_tree(int id)
    {
    int temp1,temp2;
    temp1=seg_tree[id<<1];
    temp2=seg_tree[id<<1|1];
    seg_tree[id]=(temp1>=temp2?temp1:temp2);
    }
  • 相关阅读:
    Hive与Hadoop的交互流程
    Hadoop Webhdfs
    Hadoop HDFS的Java操作
    Hadoop JobHistory
    使用Eclipse构建Maven项目环境搭建
    Shell脚本简介 — 持续更新
    Hadoop基础 — Hadoop Shell
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
  • 原文地址:https://www.cnblogs.com/woaiyy/p/2520734.html
Copyright © 2011-2022 走看看