ABC232

結果

A  \ 02 : 46

B  \ 26 : 07

C  \ 65 : 59

D  \ 91 : 19

 4WAの 4完で,パフォは 840,rating変動は \pm 0 848 \to 848でした.

考察

A問題

1, 3文字目をintに変換して普通にかけ算します.

久しぶりだったので,「intに直す関数なんだっけ」ってなったり,

「いや,-'0'でいいのか.あれ,+'0'だっけどっち?」

みたいな初心者みたいなことをしていて3分ぐらいかかりました.

B問題

これはなんでACしたかよくわからん.

とりあえずよくわからん解法を載せます.ACしていない人は読まないでください.

初期で一致していないindexのところだけ行き先を記憶しておきます.行き先が2つ以上あったらNoです.(pp→abみたいに)

あとは,行き先の行き先が自分自身だったらNoです.(ab→baだと,aの行き先はbで,bの行き先はaなのでNo)

これでなぜかACしたけど妥当性は完全に不明.

2021/12/20追記

問題をすごく読み違えていたことに気づきました.

ACしたのが奇跡です.

C問題

順列全探索です.

 0 N-1までの数列 Pを,全ての順列で回しながら以下を行います.

1.青木くんのおもちゃの繋がり方をグラフとして表現

2.全てのひも iに対して,青木くんのボール P_{A_{i} }と繋がっているボールの中に青木くんのボール P_{B_{i}}は存在するかを確認する.

全てのひもで2.が成り立っていれば,その数列 Pが答えです.

ちなみに,頂点を0-indexedしていなかったので2WAしました.

D問題

グリッドのBFSです.

各地点までの距離をINFとかで初期化して,BFSをするだけです.

私はDPっぽい条件式で距離を更新しようとしていましたが,最短経路が常に出るので全く意味のない事をしていました.

vectorとかqueueってどうやって使うんだっけとなりました.

感想

1か月ほぼ全く競プロを触っていなかったので,色々忘れていてかなり焦っておりました.振り返ってみると,全体的に意味不明なコードを書いていたような気がします()

実は,B問題が終わった時点で下位5%ぐらいにいたので辞めちゃおうかと思いましたが,最後までやってよかったです.久しぶりのABC,楽しかった.

そういえば,rating変動0って初めてかも