人工知能と競プロやってくブログ

深層学習・機械学習・AI・atcoder・競技プログラミングについて調べてやってみたことをまとめるブログです

AtCoder Beginner Contest 205 [ D - Kth Excluded ] の想定解法をPythonで実装してみる(正解率38%)

AtCoderで解説されてる想定解答を実装してみました。
しかしコレ、難しくない?これ茶色diffかー?
でも正解者多いから、そんなもんかなー。
atcoder.jp

想定解答の内容

f:id:uchidamax:20210615165831p:plain
AtCoder ABC205 D

入力例1の内容を元に、想定解答の内容をまとめてみました。

Aのいずれとも異なる正の整数を良い整数と呼ぶことにします。
各iについて、Ai以下の良い整数の個数Ciを記録しておきます。

公式の解説にあるように、この数列Cを作成する。
この数列CにたいしてKの値が、どこの位置にに入るかが、Kを補正する値となる。

なるほどねー、キレイにできるもんだね。
bitsect_leftを使うほうが、直感的にわかりやすいと思うので、そちらでまとめた。

bitsec_leftを使ったPythonコード

bitsec_rightを使ったPythonコード

bitsec_rightを使うパターンのほうが、コードはスッキリする。

正解率計算

問題正解者 / コンテスト参加者 で計算。
3336 / 8775 = 38%
けっこう正解してるよなー。
オレできなかったけどw

参考

atcoder.jp

youtu.be

動画の解説が、わかりやすい