zoukankan      html  css  js  c++  java
  • 线段树--hdoj1754

    include

    include <stdio.h>

    include <stdlib.h>

    include <math.h>

    using namespace std;
    const int MaxNode=524288;
    const int MaxStu=200001;
    struct Node{
    int value;
    int left,right;
    }node[MaxNode];

    int father[MaxStu];
    void BuildTree( int i,int left,int right)
    {
    node[i].left=left;
    node[i].right=right;
    node[i].value=0;
    if(right==left)
    {
    father[left]=i;
    return;
    }

    BuildTree(i<<1,left,(int)floor((left+right)/2.0));
    BuildTree((i<<1)+1,(int)floor((left+right)/2.0)+1,right);
    

    }

    void UpdateTree(int ri)
    {
    if(ri==1) return;
    int fi=ri/2;
    int a=node[fi<<1].value;
    int b=node[(fi<<1)+1].value;
    node[fi].value=(a>b)?a:b;
    UpdateTree(ri/2);

    }

    int MAX;
    void Query(int i,int l,int r)
    {
    if(node[i].leftl && node[i].rightr)
    {
    MAX=(MAX<node[i].value)?node[i].value:MAX;
    return;
    }

    i=i<<1;
    if(l<=node[i].right)
    {
        if(r<=node[i].right)
            Query(i,l,r);
        else
            Query(i,l,node[i].right);
    }
    
    i=i+1;
    if(r>=node[i].left)
    {
        if(l>=node[i].left)
            Query(i,l,r);
        else
            Query(i,node[i].left,r);
    
    }
    

    }
    int main()
    {
    int N,M,igrade;
    while(scanf("%d%d",&N,&M)!=EOF){
    BuildTree(1,1,N);
    for(int i=1;i<=N;i++)
    {
    scanf("%d",&igrade);
    node[father[i]].value=igrade;
    UpdateTree(father[i]);

        }
    
    
    while(M--)
    {
        char ch[3];
        int a,b;
        scanf("%s %d %d",ch,&a,&b);
        if(ch[0] == 'Q')
        {
    
            MAX=0;
            Query(1,a,b);
            printf("%d
    ",MAX);
        }
        else  if(ch[0]=='U')
        {
            node[father[a]].value=b;
            UpdateTree(father[a]);
        }
    }
    
    }
    return 0;
    

    }

  • 相关阅读:
    高一下期末考试划水记
    BZOJ 1053
    积性函数与狄利克雷卷积(未完待更)
    Contest Hunter 3101
    POJ2689
    3.17爆零赛
    全概率公式
    矩阵快速幂
    模板练习
    _rqy's Code Style for OI
  • 原文地址:https://www.cnblogs.com/vector11248/p/5424319.html
Copyright © 2011-2022 走看看