sataniC++

C++、競プロ、数学などについて色々考えたりします。

アルゴリズム-A_G

Convex-Hull Trick

直線集合L={f_i(x)=a_ix+b_i}に対して、「Lへの直線f_k(x)=a_k x+b_kの追加」(以下、追加クエリ)と、「あるxに対し、Lの中で最小値(あるいは最大値)を取るような直線の値を求める」(以下、最小値クエリ)という2つのクエリを効率的に行うことが出来ます。