Shuz*'s Blog

事象の性質を考察する

2021-12-01から1ヶ月間の記事一覧

区間係数付き加算・一点係数更新・一点和取得ができるデータ構造

はじめに 累積和高速化型貰うDPの添字に苦しめられたことはありませんか?私はあります。 なんと、貰う配る変換をしなくても、配るDPのまま高速化できるデータ構造があります。その名も Shuz* 木!(勝手に名付けた) といっても非直感的なので係数セグ木と…

計算量解析

問題 void f(unsigned int x, unsigned int y, unsigned int z) { if (!x || !y || !z) return; f(x / 2, y, z), f(x, y / 2, z), f(x, y, z / 2); } この関数の計算量を解析せよ。 ▽正解(クリックして展開)

乱数による開区間の生成

たくさんの空でない開区間を乱数で生成したいとき、l = rand([0, N - 1]), r = rand([l + 1, N]) としていないだろうか?これでは分布に偏りが生じてしまう。例えば、 の出現確率は の出現確率の になってしまう。これを避けるには、 l = rand([0, N]) r = r…