i)の更新をどうしたらよいか。i)を交換すると1クエリにO(N)かかってしまう。F[y][k])をO(sqrt(N))回繰り返せば済む。(k+1)R)に収まらないインデックスiについて考える。この添字の個数はO(sqrt(N))個。floor(i/R))へ足したり引いたりする。与えられた頂点のK個からなる部分集合について、最適なPの座標はx座標の中央値となる。Pの候補は与えられた頂点のx座標に限られる。これらx座標を昇順に見ていく。(以下、x[k]<x[k+1]とする)P=x[0]としてとりあえず近いK個を集合Lに入れておく。残った頂点は集合Rに入っているとする。x[k+1]と変化したとする。x[k]のときの最適な構成Lから、x[k+1]のときの最適な構成L'を得たい。そのために、Lから遠くなった頂点を取り除きつつ、Rの近くなった頂点を突っ込んでいく。yr)を使ったほうがよい。yr)を比較していく。あとはマンハッタン距離の和を動的に求めたい。y座標については総和を足し引きするだけ。Pの座標によらないため。Treeで座標ごとに座標の和、その座標の頂点数を数えておけば簡単。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。