HDU 2665タイトルテンプレートセクションK-会長オフライン大きな木

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
const  int型 N = 100005 ;
const  int型 M = 100005 * 20 INTのルート[N]、LSONの【のM]、rson [M]、V [M]。
INT [N]、B [N]。
int型 TOT = 0 ; 
ベクトル < int型 > 対; 
マップ < int型int型 > 融点;
ボイドビルド(INT&X、int型の L、INT R){ 
    X = ++ TOT。  //coutの<< X <<てendl; 
    もし(L == R){V [X] = 0 ; 返します}
     INT半ば=(L + R)/ 2 
    ビルド(LSON [x]は、L、MID)。
    ビルド(rson [x]は、中間 + 1 、R)。
    V [X] = Vの[のLSONの[X] + V [rsonの[X]]。
} 
ボイド更新(INT奇数、INT&X、int型の POS、int型の値、int型 L、int型R){ 
    X = ++ TOT。V [X] = V [奇数] +値。LSON [X] = LSON [奇数]。rson [X] =のrson [奇数]。// 构链
    場合(L == R){   返します}
    INT半ば=(L + R)/ 2 もし(MID> = POS)更新(LSON [奇数]、LSON [x]は、POS、値、L、MID)。
    他の          更新(rson [奇数]、rson [x]は、POS、値、中間+ 1 、R)。
    // V [X]のV [のLSON [X] + V = [rsonの【をX]]。
}
 int型の照会(INT奇数、int型のx、int型 K、int型の L、INT R){
     int型 NUM = Vの[のLSONの[X]] - V [LSON [奇数]。
    もし(L == R)    戻りL。
    もし(K <= NUM)戻りクエリ(LSON [奇数]、LSON [X]、K、L、(L + R)/ 2 )。
           戻りクエリ(rson [奇数]、rson [x]は、K-numが、(L + R)/ 2 + 1 、R)。
} 
int型のmain(){
     int型の T。scanf関数(" %のD "、&T)。
    一方、(T-- ){
         int型 N、M。scanf関数(" %d個の%のD "、&​​N、&M)。
        以下のためにint型私= 1 ; iが<= N; iが++)のscanf(" %dの"、および[I])。
        以下のためにint型 I = 1 iは= N <; I ++の)vs.push_back([I])。
        ソート(vs.begin()、vs.end())。
        vs.erase(ユニーク(vs.begin()、vs.end())、vs.end())。
        以下のためにint型 i = 0 ; i)は(vs.sizeを<; I ++の)融点を[VS [I] = I + 1、B [I + 1 ] = VS [I]。
        // (I = 0 int型私は++; iがvs.size()<)のために<< ENDL [[I] VS] COUT <<対[I] <<」「<<融点を、coutの<<てendl; 
        INT NN = vs.size()。
        ビルド(ルート[ 0 ]、1 、NN)。
        以下のためにint型 i = 1 ; iが<= N; iは++ ){
             int型 POS =融点[I]]。  // coutの<< MP [[I]] <<てendl;1 ]、根[i]は、POS、1 、NN)。
        } 
        のためにint型 I = 1 ; I <= M; iは++ ){
             int型の L、R、K。scanf関数(" %D%D%D "、&​​L&R&K)。
            INT ANS =クエリ(ルート1- [ 1 ]、根[R]、K、1 、NN)。
            printf(" %Dを\ n " 、B [ANS])。
        } 
        vs.clear()。
        mp.clear(); 
        以下のためにint型 i = 0 ; iが<= N; iは++)ルートを[I] = 0 ; 
        TOT = 0 ;
    } 
}

 

おすすめ

転載: www.cnblogs.com/Andromeda-Galaxy/p/10938478.html