class NgLib:: PrioritySum(T)

Overview

昇順(降順) $k$ 個の総和を効率良く求めるためのデータ構造です。

値の追加、削除、$k$ の変更ができます。

Defined in:

nglib/data_structure/priority_sum.cr

Constructors

Class Method Summary

Instance Method Summary

Constructor Detail

def self. new (tag : Symbol, k : Int , initial : T = T .zero) #

[ View source ]

Class Method Detail

def self. max (k : Int , initial : T = T .zero) #

上位 $k$ 要素の総和を求めるためのデータ構造を構築します。


[ View source ]
def self. min (k : Int , initial : T = T .zero) #

下位 $k$ 要素の総和を求めるためのデータ構造を構築します。


[ View source ]

Instance Method Detail

def << (x : T) #

Alias for #add


[ View source ]
def add (x : T) #

要素 $x$ をデータ構造に追加します。

計算量は $O(\log{n})$ です。


[ View source ]
def delete (x : T) #

要素 $x$ をデータ構造から削除します。

計算量は $O(\log{n})$ です。


[ View source ]
def empty? (*args, **options) #

[ View source ]
def empty? (*args, **options, &) #

[ View source ]
def k : Int32 #

[ View source ]
def k= (k : Int ) #

$k$ の値を変更します。

計算量は $\Delta k \log{\Delta k}$


[ View source ]
def size (*args, **options) #

[ View source ]
def size (*args, **options, &) #

[ View source ]
def sum : T #

[ View source ]