AtCoder

プログラミング

Insurance(ARC122B)

Insurance問題提出解けた以下、解法を書く。 三分探索と累積和を組み合わせて解いた。 最小にしたい関数は、失う金額の期待値なので、以下のようになる。 $$ \begin{align} E(x) &=& \frac{1}{N}\sum_...
c++

Tour(ABC204)

Tour 問題 提出 解けた 以下、解法を記載する。 スタート地点を固定して、全探索する。 全探索をDFSで行うと、$O(N+M)$になる。 スタート地点は全部でN個あるので$O(N(N+M))$になる。 この問題では、最大で$N=2000...
プログラミング

ABC314感想戦

コンテスト A問題 感想 円周率の小数第N位までを出力する問題だけど、小数第100位までの値が与えられている。 なので、与えられている文字列の先頭から$N+2$個を出力するといい。 コンテスト中提出コード int main() { ll n...
c++

Tax Included Price(ARC118)

Tax Included Price 問題 提出 公式解説とは異なるやり方だが解けた 以下、解法を書く。 税込価格を変形して、 $\lfloor \frac{100+t}{100}A \rfloor = \lfloor (1+\frac{t...
IT

ℕ Coloring(ARC115)

ℕ Coloring 問題 提出 解けたが、数学的に正しいのか分からず解いた 最近の自分の中のトレンドとして、解法が数学的に正しいのか考えてから解くようにしたいと思っている(まだ全然できないが笑)。 この問題では、解法を思いついたものの、こ...
c++

Long Common Subsequence(AGC052)

Long Common Subsequence(AGC052) 問題 解けず。解説を読んで再考 まず、「$2N+1$の$01$文字列であって$S_1+S_1$、$S_2+S_2$、$S_3+S_3$いずれの部分列であるもの」は「$S_1+S...
python

ABC309感想戦

コンテスト A問題 感想 少し悩んだ。 とりあえずAのことだけを考えてみると、A%3毎にB隣接がどの方向になるのかが変わることが分かる。なので、A%3が1,2,0それぞれについて、条件分岐して解いた。 コンテスト中提出コード import ...
python

累積和とfor文での和との対応

for文での和 例として、[3,6)の和をとるコードを書いてみると、以下のようになります。 a = [11, 31, 83, 25, 26, 94, 101] s = 0 for i in range(3, 6): s += a[i] pr...
python

ABC308感想戦

コンテスト A問題 感想 3回バグらせて、割とすぐにACできた。 DFS,BFSの亜種。 した。 最終のバグコード。 bを前回値として、単調増加の検査をしようと思ったが、bの値を検査できていないことに気づき、条件式をコピペしてきた。なんとも...
rust

rustで優先度付きキューを使いたい時、BtreeMapも検討してみようというお話

通常、rustで優先度付きキューを使うならBinaryHeapだとgoogle先生もchatGPT先生も言っています。 しかし、特定の用途に関してはBtreeMapを使うことになると思います。 AtCoderで問題を解いていた時に、この用途...