2021-01-01から1年間の記事一覧

Atcoder Beginner Contest (ABC) 221 E - LEQ

問題文 想定解法はBIT(Binary Indexed Tree)でした。最初からBITだと分かって解いたというよりは、手元でノートに色々書き込みながら考察を進めていく中でなんとなく「BIT使えそうだな」→「あ、本当に行けそう」と徐々に確信が強くなり、解くことができまし…

【Python】形式的冪級数(FPS)(一部未完成)

【注意】このライブラリは一部の機能が未完成です。また、expの計算が遅く改善の余地があります。Pythonによる完成度の高い形式的冪級数ライブラリを探されている方は、yosupo judgeのSubmission一覧画面で①形式的冪級数(Formal Power Series)関連の問題の…

【Python】全方位木DP (書きかけ)

【注意】この記事は書きかけです。 抽象化全方位木DPのライブラリです。全3バージョンあります。多数の引数が入り乱れている実装で改善の余地がありますが、問題をACできる程度には動きます。 実装にあたっては、すぬけさんによるABCの解説放送(https://ww…

【Python】バケット法(平方分割)

機能 セグ木と同様に、一点更新と区間取得ができます。ただし計算量はセグ木がの区間取得がO(logN)のところがバケット法だとO(\sqrt{N})かかり、遅くなります。基本的にセグ木と同じことしかできないにも関わらず計算量の点では性能は一段階劣るという感じな…

【Python】非再帰抽象化 Segment Tree (通常バージョン、非可換対応バージョン)

バージョン1:可換モノイド用 機能 通常のセグメント木と同様、一要素ごとの更新、区間における演算結果を取得できる。抽象化してあり、二演算と単位元のペアを指定することで様々な可換モノイドに対応できる。 (二項演算と単位元の例) 二項演算 単位元 m…

【Python】削除可能優先度付きキュー

機能 通常の優先度付きキューの機能 - 要素の追加:O(logN) - 最小値(最大値)の出力または削除:O(logN) に加えて、 - 特定の要素の削除:O(logN) をすることができます。 使い方 キューのインスタンス作成 最小値の取得をするキュー:q = DeletablePQ()(…