2018の12/25分の記事です。C#は良い言語なのですが、競技プログラミングには少し(というか色々)足りないものがあります。ここでは、その不足分を埋める個人ライブラリを紹介します。この記事にあるコードはすべて自由にご利用くださってかまいません。不具合等があったら報告をいただけると幸いです。ほとんどが蟻本を参考にして実装されています。}}まずは定番の優先キュー(ヒープ)です。C#を競プロで使うときの最大の不満がこれといっても過言ではありません。コンストラクタにIComparerを渡したり、最小/最大のどちらで動かすか設定できたりします。Push()、Pop()のほかに、Peek()、Count()、Contains()、Clear()、ToArray()といった便利メソッドも足してあります。}}つぎはこれも定番のUnionFind。多少速度は犠牲にしていますが、なるべく汎用的に使えるようにIComparableなら何でも受け付けるようにしてます。Unite()のほかに、IsSameGroup()も用意してます。}}C#のTupleは比較できないので。BSTを使って自動バランスするようにがんばりました。Insert()のほかに、Remove()、RemoveAt()、Contains()、Find()、UpperBound()、LowerBound()などがあります。これ単体だとあんまり便利ではないかもしれませんが、次のSetとMultiSetの実装に必要です。}}平衡二分探索木を使ったSetとMultiSetです。LowerBound()とUpperBound()があるのが強み(というかそのために作った)。}}ないと稀によく困るデックです。PushFront()、PushBack()、PopFront()、PosBack()、Insert()、RemoveAt()を用意してます。d;}これは定番ですね。C#ではなくとも、みんな自前ライブラリで持ってると思われます。}}組み合わせ系のライブラリ。これらも、C#でなくともみんな自前で用意してます。いくつかの関数は、Precal_FactAndInv()を呼んでから使ってください。参加日記262位/11880人。Easy問は省略する。Challengeに初参加した。数学関連の問題がでるコンテストらしい。R1は時間的に参加できるかどうか微妙だ。月別アーカイブはてなブログをはじめよう!yambe2002さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。