プログラミング-競技プログラミング

Pythonの切り捨て除算演算と剰余演算

POINT x//yはfloor(x/y)と思えばOK. x%yはmod yで,yと同符号になる. ドキュメント 負の数に対する演算 参考文献/記事 ドキュメント6. 式 (expression) — Python 3.12.1 ドキュメント //(切り捨て除算: floor division):floor関数と同じ. 整数の切り捨て…

偏角でソート

与えられた点の集合を,偏角(あるいは原点と各点を通る直線の傾き)によってソートすることを考えます.まず,傾き(y / x)や偏角(atan2)を計算した上でソートすることが考えられます.しかし,この方法では,誤差によって正しくソートできない可能性が…

事象が起こるまでの試行回数

POINT 確率$0 確率$p$の$n$種類の当たりくじを全て当てるまでの試行回数の期待値は$\displaystyle \frac{1}{p}\sum_{k=1}^{n}\frac{1}{k}$. 様々な計算方法があります.中でも,条件付き期待値による方法は,直感を利用して計算を省略できるメリットがあり…

床関数・天井関数と関係式

POINT 床関数・天井関数の定義 競技プログラミングでよく使われる関係式の導出 分数のところの関係式が競技プログラミング(AtCoder,蟻本など)のコードでよく使われています.検索しても欲しい記事が出てこないので,自分で考えました. 床関数 天井関数 …