• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            xiaoguozi's Blog
            Pay it forword - 我并不覺的自豪,我所嘗試的事情都失敗了······習慣原本生活的人不容易改變,就算現狀很糟,他們也很難改變,在過程中,他們還是放棄了······他們一放棄,大家就都是輸家······讓愛傳出去,很困難,也無法預料,人們需要更細心的觀察別人,要隨時注意才能保護別人,因為他們未必知道自己要什么·····

            //回憶系列..

              1//segment tree template
              2#include <iostream>
              3
              4using namespace std;
              5struct Tnode{
              6    //point left,right child
              7    Tnode *lc,*rc;
              8    //segment devide
              9    int left,right;
             10
             11    //extra
             12    int maxval;
             13
             14    //construct function
             15    Tnode(int data=0,int l=0,int r=0,Tnode*lp=0,Tnode*rp=0)
             16            :left(l),right(r),lc(lp),rc(rp){
             17                maxval=0;
             18    }
            ;
             19}
            ;
             20
             21//maxsize number of Tnode
             22const int N=200002;
             23int score[N];
             24
             25//static allocate memory for Tnode [a,b] node_size=2*(b-a)+1 for [i,i+1]
             26Tnode node[N<<1];
             27//count for usage Tnode array
             28int cnt=0;
             29
             30//make a new node ,return Tnode*
             31Tnode* new_node(){
             32    Tnode* p=&node[cnt++];
             33    memset(p,0,sizeof(Tnode));
             34    return p;
             35}

             36
             37//make tree ,return Tnode* which is root
             38//parament: [left,right]
             39Tnode* make_tree(int left,int right){
             40    //make a new Tnode 
             41    Tnode* root=new_node();
             42    //Initial the Tndoe
             43    root->left=left,root->right=right;
             44    
             45    if(left==right){//[i,i] 
             46        //root->data=score[left];//initial the Tnode data
             47        return root;
             48    }
            else{
             49        int mid=(left+right)>>1;
             50        root->lc=make_tree(left,mid);
             51        root->rc=make_tree(mid+1,right);
             52        return root;
             53    }

             54}

             55Tnode* UpdateData(Tnode* root,int left,int right,int val){
             56    if(root->left==root->right){
             57        root->maxval=val;
             58        return root;
             59    }

             60    int mid=(root->left+root->right)>>1;
             61    Tnode *rc=0,*lc=0;
             62    if(mid>=right){
             63        lc=UpdateData(root->lc,left,right,val);
             64    }
            else if(mid<left){
             65        rc=UpdateData(root->rc,left,right,val);
             66    }
            else{
             67        lc=UpdateData(root->lc,left,mid,val);
             68        rc=UpdateData(root->rc,mid+1,right,val);
             69    }

             70
             71    int leftmax=0,rightmax=0;
             72    if(lc!=0)leftmax=lc->maxval;
             73    if(rc!=0)rightmax=rc->maxval;
             74
             75    int curmax=leftmax>rightmax?leftmax:rightmax;
             76    root->maxval=curmax>root->maxval?curmax:root->maxval;
             77
             78    return root;
             79}

             80int QueryMax(Tnode* root,int left,int right){
             81    if(root->left>=left&&root->right<=right){
             82        return root->maxval;
             83    }

             84    int mid=(root->left+root->right)>>1;
             85    int l=0,r=0;
             86    if(mid<left){
             87        r=QueryMax(root->rc,left,right);
             88    }
            else if(mid>=right){
             89        l=QueryMax(root->lc,left,right);
             90    }
            else{
             91        l=QueryMax(root->lc,left,mid);
             92        r=QueryMax(root->rc,mid+1,right);
             93    }

             94    return l>r?l:r;
             95}

             96
             97
             98int main()
             99{
            100    int n,m;
            101    while(scanf("%d%d",&n,&m)!=EOF){
            102        cnt=0;
            103        Tnode *root=make_tree(1,n);
            104        for(int i=1;i<=n;i++){
            105            scanf("%d",&score[i]);
            106            UpdateData(root,i,i,score[i]);
            107        }

            108        char command;
            109        int a,b;
            110        getchar();
            111        for(int i=0;i<m;i++){
            112            scanf("%c %d %d",&command,&a,&b);
            113            switch(command){
            114                case 'Q':
            115                    printf("%d\n",QueryMax(root,a,b));
            116                    break;
            117                case 'U':
            118                    UpdateData(root,a,a,b);
            119                    break;
            120                default:
            121                    break;
            122            }
            ;
            123            getchar();
            124        }

            125    }

            126    return 0;
            127}
            posted on 2009-03-08 15:35 小果子 閱讀(372) 評論(0)  編輯 收藏 引用 所屬分類: Acm
            国产综合久久久久| 国产精品va久久久久久久| 欧美久久一区二区三区| 91精品国产高清久久久久久国产嫩草 | 91久久精一区二区三区大全| 777午夜精品久久av蜜臀| 少妇久久久久久被弄到高潮| 国产精品免费久久| 99热都是精品久久久久久| 国产精自产拍久久久久久蜜| 久久99国产精品成人欧美| 久久综合九色综合久99| 欧美激情精品久久久久久| 久久一区二区三区99| 久久天天日天天操综合伊人av| 久久精品18| 亚洲国产小视频精品久久久三级| 色婷婷久久综合中文久久一本 | 久久久噜噜噜久久| 亚洲精品高清一二区久久| 久久只有这里有精品4| 午夜精品久久久久久毛片| 久久水蜜桃亚洲av无码精品麻豆| 国产91色综合久久免费| 国产—久久香蕉国产线看观看| 久久午夜福利电影| 麻豆一区二区99久久久久| 久久精品国产亚洲沈樵| 久久最新免费视频| 性欧美丰满熟妇XXXX性久久久 | 久久国产精品99精品国产987| 一级做a爱片久久毛片| 久久久久九国产精品| 久久久久亚洲精品日久生情| 国产成年无码久久久久毛片| 国产日韩久久久精品影院首页| 中文国产成人精品久久亚洲精品AⅤ无码精品| 亚洲国产成人久久精品99| 嫩草伊人久久精品少妇AV| 久久久久久毛片免费看| 色综合久久综合中文综合网|