zoukankan      html  css  js  c++  java
  • HDU 1754 Java

    退役后学java...

    裸线段树

    //By SiriusRen
    import java.util.*;
    import java.math.*;
    public class Main{
        public static void build(int l,int r,int pos,int []tree,int []score){
            if(l==r){tree[pos]=score[l];return;}
            int mid=(l+r)>>1,lson=pos<<1,rson=pos<<1|1;
            build(l,mid,lson,tree,score);build(mid+1,r,rson,tree,score);
            tree[pos]=Math.max(tree[lson],tree[rson]);
        }
        public static void insert(int l,int r,int pos, int num,int wei,int []tree){
            if(l==r){tree[pos]=wei;return;}
            int mid=(l+r)>>1,lson=pos<<1,rson=pos<<1|1;
            if(mid<num)insert(mid+1,r,rson,num,wei,tree);
            else if(mid>=num)insert(l,mid,lson,num,wei,tree);
            tree[pos]=Math.max(tree[lson],tree[rson]);
        }
        public static int query(int l,int r,int pos,int L,int R,int []tree){
            if(l>=L&&r<=R)return tree[pos];
            int mid=(l+r)>>1,lson=pos<<1,rson=pos<<1|1;
            if(mid<L)return query(mid+1,r,rson,L,R,tree);
            else if(mid>=R)return query(l,mid,lson,L,R,tree);
            else return Math.max(query(l,mid,lson,L,R,tree),query(mid+1,r,rson,L,R,tree));
        }
        public static void main(String args[]){
            int []score=new int[200005];
            int []Tree=new int[3500000];
            Scanner in=new Scanner(System.in);
            while(in.hasNextInt()){
                int n=in.nextInt(),m=in.nextInt();
                for(int i=1;i<=n;i++)score[i]=in.nextInt();
                build(1,n,1,Tree,score);
                for(int i=1;i<=m;i++){
                    String p=in.next();
                    if(p.equals("Q")){
                        int jyx=in.nextInt(),jyy=in.nextInt();
                        int jy=query(1,n,1,jyx,jyy,Tree);
                        System.out.println(jy);
                    }
                    else{
                        int jyx=in.nextInt(),jyy=in.nextInt();
                        insert(1,n,1,jyx,jyy,Tree);
                    }
                }
            }
        }
    }
  • 相关阅读:
    C#性能优化实践
    JavaScript类型转换
    JSON基础
    EasyUI DataGrid 内部input的事件
    WPF之Binding基础二 控件作为Binding的数据源
    WPF之Binding基础一 UI Binding Source
    JavaScript里面的“类”
    SqlServer随笔
    对象和类型
    浅谈类
  • 原文地址:https://www.cnblogs.com/SiriusRen/p/7526714.html
Copyright © 2011-2022 走看看