yosupo judge ACコード
最近ライブラリ整備にハマっているので(コードは全部C++17で書いています)
是非使って下さい(は?)
yosupo judgeって何?
ライブラリを使って解く問題が中心に集められているサイトです
ここで自分が作ったライブラリがちゃんと動くのかを確かめることが出来ます
https://judge.yosupo.jp/
問題
Sample
A+B
まぁ、流石にね?
ACコード
Many A + B
高速化はしていません 許して
ACコード
Data Structure
Associative Array
標準ライブラリのstd::mapを使っています 自前実装はする気になりません()
ACコード
UnionFind
yosupo judge上には重み付きUnion-Find木の問題は無いのかな
まぁ滅多に使わないので良いんですが
ACコード
Static Range Sum
ACコード(Bynary Indexed Tree) //todo:入力がlong longになってないので直す
ACコード(累積和)
Static RMQ
Sparse Tableを他の人のコードを見ながら実装した
ACコード(Sparse Table)
ACコード(セグメント木)(セグメント木のパートはこれを元にしています)
Point Add Range Sum
ACコード(Bynary Indexed Tree) //todo:セグ木の方法も書く
Point Set Range Composite
セグメント木にはint以外にも1次関数とか(一般的にモノイドと呼ばれてるもの)が乗せられるよっていう話(ex.ARC008 - D タコヤキオイシクナール)
あとは抽象化をするといちいちセグメント木の中身を書き換えずに済むので楽
ちなみに最初1次関数の単位元を(0,0)にしていたやつがいるらしい
ACコード(抽象化セグメント木のパートはこれを元にしています)
Range Affine Range Sum
遅延評価セグメント木を抽象化すると地獄を見ることが分かった
ACコード(抽象化遅延評価セグメント木のパートはこれを元にしていますが、eval関数内の引数を増やしています)