イノたまごラボ・あのぶる の「こんなの作ったよ!」

「イノたまごラボ」はひとり同人サークルのようなものです。今のところ同人誌は作っていませんが、ソフトウェアからイベントまで、心惹かれたものを細々と。

ABC全部やるチャレンジ・ABC301

全体の進捗

  • やった回: ABC301
  • 成績: ABC3完 / 0ペナ(+未AC0ペナ)/ 37:22(ペナ込み)
  • 推定パフォーマンス: 835

これで300番台の回は(今のところ)コンプ。

パフォーマンスだけ見れば今のレートからすればまずまずの結果ではあるのだけど、ちょっと悔しい内容。難しいという訳ではないんだけど、ABがちょっと実装重めというか、ややこしく感じた。
例によって今回もRails Girls競プロ同好会で実況しながらバチャりました。

A問題: ABC301-A Overall Winner

atcoder.jp

結果を先頭から順に走査していって、勝敗の数と最初に半数を取った人を見ていく。 もうちょっとコードシンプルにならん?と思ってこの記事を書きながら他の人のACコードを見てみたら、最後の結果を確認してそっちじゃない方の人、という判定をしていてなるほどと思いました。こういう頭の柔らかさが欲しい。

B問題: ABC301-B Fill the Gaps

atcoder.jp

これも配列を先頭から走査していって、差が2以上あれば途中の値で埋めていく。

C問題: ABC301-C AtCoder Cards

atcoder.jp

わりと最近あった類題っぽいのを連想しつつじゃあこれもソートして比較すればいいんじゃね?という方針で一回解いてみるも、それだとワイルドカード@をどのタイミングで使えばいいか分からないよねとなり悩む。 その後何やかんやでs.tallyしたのとt.tallyしたのを比較して、数が合わないやつを置換できれば置換していって、無理だったらその時点でダメだねって判定をすることでどうにかAC。

D問題: ABC301-D Bitmask

(upsolveコード) atcoder.jp

?の数は最大60個あるのでbit全探索したら間に合わないよなー、?の部分をどうにかして効率よく埋めていくしかないな、と悩み、どうやら近しいところまでたどり着いたものの残り15分のところでギブアップし、解説を読みました。D問題のコードはすべてバチャ終了後に提出したものです。 実況を見学してくださっていたいしりば~さんがたまたまこの問題を解かれていたので解説していただきつつupsolve。コロンブスの卵的な問題ですね……うまく次回以降に応用できるだろうか。