ABC277 (2022/11/12)
〇A問題
CarpDay.icon 素直にスキャンしました.
Yuto.icon P.index(x)でok.1-indexedに気を付ける
TK.icon前回の勉強会のenumerate早速使わせてもらいました
sakana.iconスキャンしながら値が一致したら出力した。
wataumi.icon(AC)素直に解きました。
〇B問題
CarpDay.icon初めは3つ目の条件(異なるカードがない)だけだと思っていました...入力例3のおかげで助かりました(^^;
Yuto.icon やるだけ問題. 二文字目の条件のTをIと見間違えていてWAを出しそうになったけど提出直前に気付けたので良かった.他の人の提出を眺めていて思ったけど,リストで持たずに文字列にすれば問題文からコピペできるからそっちの方が良かったかも.(s in ["a", "b", ...] ではなく,s in "ab.."の方がいい)
TK.iconとりあえず思いついたまま書いてみたらいけました。
sakana.iconサンプルは通ったが6/19がWA
Yuto.icon@sakana二文字目の4と8を判定する部分のindexミスでした.
wataumi.icon(AC)3つの条件それぞれをif - else文を用いて判定しました。
〇C問題
CarpDay.icon 初めはDFSかな?と考え途中まで作成したけど,点番号が$ 10^9あって隣接リストでは無理なことに気付く.C問題でUnion-Findはないよなと思い,ソートしたらO(N)で行けるんじゃね?と思って提出してWA...反例に気付いて一旦スキップ.
Yuto.icon 行ける階同士を繋げていきたい→UnionFind!ということでライブラリをコピペしてローカルで実行したらRE.階の値域が$ < 10^9だから配列では持てないけど値の数は高々$ 10^5なので座標圧縮すればok.UF内の配列を辞書に変えてAC.ここまで15分だったので良いペースで解けた.
CarpDay.icon D問題から戻って取り組む.上に同じくUnion-Findのライブラリが点番号に関するリスト型で$ 10^9が無理だったので,速攻で辞書型に作り変えて残り4分.落ち着いて数値例で確認して投稿.残り2分でAC!やった!こんなギリギリでACなの滅多にないよね(前振り)
TK.icon前回の反省を活かして隣接リストを作成して頑張ろうと思いましたが、そんなに甘くはなくリストを作った後にD問題へ
sakana.icon前回の隣接リスト的なものだと思ったが何もできてない。
wataumi.icon(WA)入力が昇順になっていることを願って、隣接リスト?の作成を試みましたが、そんなはずがありませんでした💦隣接ディクショナリ?及びキューを用いれば僕のやりたかったことは実現できたはず・・・。
CarpDay.icon 勉強会で質問があった隣接ディクショナリなら,DFSやBFSで解けますね!
〇D問題
CarpDay.icon余りでグループ分けして,連続するグループを探せばいい!自信満々で提出してWA...原因はケアレスミスだったのに,問題理解を誤ったと思い込み,より一般的な難しいと勘違い.その問題でも解けるようなプログラムを1時間ぐらいかけて頑張って実装して,残り12分で何とかAC.翌日WAの原因を追究して,原因を知って唖然...【教訓1】問題をよく読もう.【教訓2】慌てずにケアレスミスがないか確認しよう.
TK.icon方針はすぐに思いつきましたが、それを実装する能力はかけらもありませんでした...
Yuto.icon ぱっと見てdpっぽいなぁーと思い,少し実装してみたけど上手くいかなかったのでskip.Eに移動.
Yuto.iconコンテスト後,落ち着いて解きなおしてみた.UnionFindでグループ分けしてそれぞれのグループで消せる総和のmax取ればok.dpとか要らない.コンテスト時間があと30分くらい長ければ通せてたかも
〇E問題
Yuto.icon久しぶりにコンテスト中にEが解けた!!!!!!!!終了時間1秒前にACが出た時はとても気持よかった( ˘ω˘ ).アドレナリン出て寝れなくなりそうです
CarpDay.iconおめでとう!!
CarpDay.icon C問題もD問題も解けず,E問題見て「DP?」と思ったけど,実装に時間がかかりそうなので,D問題に戻る.コンテスト翌日に取り組む.現実世界と反転世界を作れば,1つのグラフになってBFSで済むんじゃね?という方針で実装しましたが,世界移動(スイッチ)は行動に含まない点を見落としてWA.世界移動はコスト0,移動はコスト1なのでダイクストラ必要ね.久しぶりにheapq使ってAC.解説みたら,01-BFSという方法でも解けるとのこと.メモメモ
〇F問題
CarpDay.icon コンテスト翌日に挑戦.熟考して,DAGで解けると気付くも,1行・1列内に同じ数値が存在するとTLEになることに気付きGive UP.解説の方法も少し考えたが,実装する勇気がなかった.反省.