AtCoder Beginner Contest 142

結果

順位   145th / 5235
パフォーマンス   2116
レーティング  1893 → 1917(+24)

 ノーペナ全完ができたので良かった。E問題が簡単めかと思ったけど意外と解いた人が多くなくて順位もそこそこ。次回は上手くいけば最高レート(1925)更新なるかという戦いに。

A - Odds of Oddness

 なんかむずかったのでビビりながら解いた。

 提出

B - Roller Coaster

 A問題より考える要素がなくて楽。

 提出

C - Go to School

 構造体を作ってソートする。解説PDFを見たらもっと賢くやってて、これは思いつきたかったか。

 提出

D - Disjoint Set of Common Divisors

 ボーっと考えていたらなんとなくGCD(A, B)の素因数の種類数 + 1でいけそうという勘が芽生えてそれを提出したらAC。ちゃんと証明? したわけではないけどそれなりに確信度は高かった。

 提出

E - Get Everything

 最初はフローに帰着させそうとかいくらか考えたけど、制約をよく見たら Nがめちゃくちゃ小さいことに気がついて全てを察した。しかしbitDPの実装に苦労してしまう弱者っぷり。コメントで「これは買う方、こっちは買わない方の遷移」というのを書かないと脳が混乱してしまう。

 提出

F - Pure

 最小ループっぽいものを見つければ良さそうだというのはなんとなくわかる。ループを見つけて途中に辺があったらそれで小さいループに変更していく方針は実装の仕方がわからなくて断念。いろいろ考えたが、最終的には各点について「自分から始まり自分で終わるような最小ループを見つける」ことができれば、それらの中で一番小さいものを選べば良いという方針に絞って解いた。最初は幅優先探索で実装しようと思ったが上手くできなくて(お前本当に青コーダーか?)、ダイクストラのライブラリを貼ってAC。ダイクストラ、速い、強い。

 提出