おじいちゃんのタイトル文字列

 Moのチームの癌の質問

問題のどのような意味を理解するための言語のトピックや人々のハイレベル、

公共シーク間隔の発生回数は、(どのようながんトピック)

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
typedefの長い 長いLL。
const  int型 MAXN = 5211314 ;
INT [MAXN]、POS [MAXN]、[MAXN]、[MAXN] D sは
INT [MAXN] CNT、LX、[MAXN] ANS、N、M。
INT 再(){
     int型のx = 0、W = 1チャー CH = GETCHAR()。
    一方、(CH < ' 0 ' || CH> ' 9 '){ 場合(CH == ' - ' = W) - 1 ; CH =GETCHAR();}
     一方(CH> = ' 0 ' && CH <= ' 9 ')、X = X * 10 + CH- ' 0 '、CH = )(GETCHAR。
    リターンのx *のワット。
} 
構造体クエリー{
     int型のL、R、ID。
} Q [MAXN]。
BOOL CMP(クエリA、クエリB){
     リターン(POS [ら] == POS [BL])?((POS [ら]&1)において、Ar <?BR:AR> BR):POS [アル] < POS [ BL]; 
} 
インラインボイド追加(INT X){ 
    S [CNT [X]] ++] - ; S [CNT [X]]] ++; LX =MAX(LX、CNT [X]])。
} 
インラインボイドデル(INT X){ 
    S [CNT [X]]] -もし(CNT [X]] == LX && S [LX]!)LX - ; S [ - CNT [[X]]] ++ ; 
} 
int型のmain(){ 
    N =再()、M = 再()。 
    INTのサイズ= SQRT(N)。 
    以下のためにint型 i = 1 ; iが<= N; iが++ ){ 
        scanf関数(" %dを"[I])。
        D [i]は = [I]を、
        POS [I] =(I - 1)/サイズ+ 1  
    } 
    ソート(D + 1、D + N + 1)。INT LEN =一意の(D + 1、D + N + 1)-D- 1 以下のためにint型私= 1 ; iが<= N; iが++ 
        [I] = LOWER_BOUND(D + 1、D + LEN + 1、[I]) - D。
    int型 I = 1 ; I <= M Iは++ ){ 
        Q [i]は.L =)(RE、Q [i]は.R = 再()。
        Q [i]は.ID = iは、
    } 
    ソート(Q + 1、Q + M + 1、CMP)。
    INTの R = 0、L = 1 int型 iは= 1 ; I <= M; iが++ ){
         ながら(R <Q [i]は.R)(++追加登録商標);
        一方、(R> Q [i]は.R)デル(r--の)。
        一方、(L <Q [i]が.L)デル(L ++ )。
        一方、(L> Q [i]は.L)を追加( - L)。
        ANS [Q [i]は.ID] =のLX。
    } 
    のためにint型 I = 1 ; I <= M; iが++)のprintf(" %d個の\ nを"、 - ANS [I])。
}

 

おすすめ

転載: www.cnblogs.com/wilxx/p/11697524.html