ABC317

5完。苦手セットだし慢性的に頭が悪いしどうしようもない。「こっちの問題を先にやっていればなあ」とかそういうんじゃないのよ。どの順番でやっても青パフォは取れなかった。

A - Potions

入力はかなり多いが、最初に見つかったものを出力すればいいので簡単。2分切れたのでよし。

B - MissingNo.

解法自体は、ソートして穴を見つけるだけだが、穴あき以外が本当に一意に定まらないかを確認するのがかなりの難易度。それを含めても、最近には珍しい時間のかからないB問題で、よかった。

解説の「空間計算量が小さい解法」言われてみればだなあ。

C - Remembering the Days

N!通り全部試す。

D - President

各選挙区ではギリギリ上回るようにすればいいので、そこから考えていくとDPになる。議席数はそこまででもないが有権者は多いので気をつける。DPはin-placeでできる。

E - Avoid Eye Contact

盤面を構築してしまえばただのBFS。グリッドのBFSはもうちょっとちゃんと用意しておきたい。構築は、4方向それぞれについて、その向きに沿って探索して壁にしていく。視線が視線に遮られる実装にしてしまいWA。こんな簡単な問題に30分近くかかってるのしょーもなさすぎてあまりにもつまらない。

解説を見る。そりゃ俺だって共通化したかったよ。えー向きに沿ってやらなくてもいいのか。いや確かにそうだけど。

F - Nim

桁DP。解けそうなのはわりとすぐわかるが、ハチャメチャに時間がかかる。X_iの範囲に0が入ってないのいじわるすぎるだろ。そこは一旦おいて、3種類のあまりと、下の桁から見てN(1足しておく)未満かで2通り、と思ったけど実装してたら2^3で8通り必要そうだと気づいた。コンテスト中に通すのが非現実的な実装量に思えた。紆余曲折あったが、まずはNのその位置のビットで場合分け。Xの3つのビットに000と011と101と110があるのでそれぞれの遷移を書く。終わってみればそこまでの量ではないが、最初からこれを見通せてないとコンテスト中に書くことは不可能で、通したやつは全員桁DP漬けの生活を送っているのか?あとはX_i=0のケースを除く。これは一部の遷移を無効化すれば同じコードで求まる。包除。なんか配ると貰うがくい込んだあやしいDPだった。正しく動くようにはしたつもりだが。

G - Rearranging

AHC022の影響もありフロー系を考える。1時間くらいやっていたが、できそうで結局はできなかった。