Codeforces 1181D灌漑

潅漑

問い合わせが解決するために小さなから大規模まで、オフラインで、バランスの取れたツリー千万人を設定し、大規模なk番目の問題を追求するために変換されます。

#include <ビット/ STDC ++。H> 
の#include <ビット/ EXTC ++。H>
 の#defineは LL長い長
 の#define LD長い二
 の#define ULL符号なし長い長
 の#define第Fiの
 に#define SE第二
 の#define MK make_pair
 の#define PLL対<LL、LL>
 の#define PLI対<LL、整数>
 の#define PII対<整数、整数>
 の#define SZ(X)((INT)x.size())
 の#define ALL(X)(X).begin ()、(X).END()
 の#define FIO IOS :: sync_with_stdio(偽)。cin.tie(0)。使用して名前空間はstdを、
使用して名前空間の__gnu_pbdsを。

  

CONSTの INT N = 5E5 + 7 const  int型 INF = 0x3f3f3f3f constの LL INF = 0x3f3f3f3f3f3f3f3f const  int型のmod = 998244353 ;
constの ダブル EPS = 1E- 8 ;
CONST  ダブル PI = ACOS( - 1 )。

テンプレート < クラス T、クラス S>インラインボイド追加(T&、S b)は{A + B =。もし(> = MOD)A - = MOD;} 
テンプレート < クラス T、クラスS>インラインボイドサブ(T&、S b)は、{ - = B。もし(< 0)、A + = MOD;} 
テンプレート < クラス T、クラス S>インラインBOOL chkmax(T&、S B)は{ 返す <bは?= B、;} 
テンプレート < クラス T、クラス S>インラインブール chkmin(T&、S b)は{ 返す > bは?A = B、;} 

テンプレート < クラス T>
 使用ツリー=木<T、null_type、のstd ::以下<T>、rb_tree_tag、tree_order_statistics_node_update> ; 
ツリー < 整数 > BST; 

INTのN、M、Q。
PLLのQUS [N]。
PLL今[N]。

INT [N]。
INT CNT [N]。
INTのANS [N]。

INT メイン(){ 
    scanf関数(" %D%D%D "、&​​N、&M&Q)。
    以下のためにint型 i = 1 ; iが<= N; iが++ ){ 
        scanf関数(" %dを"[I])。
        今[[i]は] Fiを提供しています。 ++ ; 
    }
    以下のためにint型 I = 1 ; I <= M; iは++)は[i]は.SE = I。
    ソート(今 + 1、今+ 1 + M)。

    以下のためにint型 I = 1 ; I <= Q; iは++ ){ 
        scanf関数(" %のLLD "、&QUS [I] .fi)。
        QUS [i]は.SE = I。
    } 
    ソート(QUS + 1、QUS + 1 + Q)。

    LL予備 = 0 
    LL CNT = 0 
    LL TMP= N; 

    int型 I = 1、J = 1 ; I <= Q; iは++ ){ 
        LLのK = QUS [I] .fi。
        一方、(j <= M &&(今[J] .fi -予備)* CNT + TMP < K){ 
            TMP + =(現在[J] .fi - PRE)* CNT。
            CNT ++ ; 
            bst.insert(今[J] .SE)。 = 今[J] .fi。
            J ++ ; 
        } 
        LLニーズ = K - TMP。
        LLのPOS =は%必要CNTを。

        もし(POS)POS = * bst.find_by_order(POS - 1 )。
        他の POS = * bst.find_by_order(CNT - 1 ); 

        ANS [QUS [I] .SE] = POS。
    } 
    のためのint型 I = 1 ; I <= Q; iが++)のprintf(" %d個の\ n " 、ANS [I])。
    リターン 0 ; 
} 

/ * 
* /

 

おすすめ

転載: www.cnblogs.com/CJLHY/p/11041549.html