0.はじめに
スポンサーを冠さないコンテスト。
全体的に歯ごたえあり目な気がしつつもとりあえず
A~Dは解けました。
E問題はあまり見ない3次元系の問題だったため
いろいろ模索しましたが、うまい解き方が見つかりませんでした。
解説を見ると、愚直に全列挙ベースで考えるみたいですね・・・。
Cでてこずったこともあり、レートは13減で966となりました。
1.A - Wrong Answer
一風変わった問題。
正解の種類が8通りもある為、一瞬戸惑いましたが
まぁ、A+Bが0なら1それ以外なら0を出力することで
ACとなりました。
https://atcoder.jp/contests/abc343/submissions/50771487
2.B - Adjacency Matrix
B問題から無向辺とか出てきたむずいのか・・・とおもいきや
インプット表の1が立っている位置を表示すればいいだけの問題でした。
どちらかというと表示方法に難儀して長くなりましたが
戸惑いましたが、今思えば、一旦リストに格納して表示すればよかったなと
思いました。
https://atcoder.jp/contests/abc343/submissions/50783851
3.C - 343
一見大変そうでしたが、試しに組んだら意外に簡単にいけました。
【考え方】
・変数ansに0をセット
・iを1から10の6乗までカウントアップするFor文を回す
・iの3乗がNを超過したらその時点のansを表示して終了
・iの3乗が回文数の時、ansにiの3乗をセット
と、簡単な実装だったのですが、10の18乗の時の答えが
やけに小さく感じたので、色々悩んだのですが、回文立法数を
列挙すると、該当する数がない桁数も多い事に気づき
そのまま提出したらACでした。
ここの悩みのせいでだいぶロスし、レートダウンにつながったことが
悔やまれます・・・。
https://atcoder.jp/contests/abc343/submissions/50806284
4.D - Diversity of Scores
高橋君の異能の凄さと、趣向の特異さに戸惑い問題の理解が
追いつきませんでしたが、一旦おいておいて例題を参照し
内容を理解。まぁ、辞書つかえば何とかなるかなと開始。
【考え方】
・人毎の現在の得点数の辞書DNを用意
→デフォルト辞書で最初は全員0点
・点数ごとの該当人数の辞書DTを用意
→最初は0点がN人
・点数の種類数変数ansを用意
→最初は1種類
-以下T回繰り返し
・A・Bを読み込み
・変数pre(この回で1減る得点種)にDN[A]をセット
・変数aft(この回で1増える得点種)にDN[A]+Bをセット
・DN[A]にB加算(Aさんの得点を更新)
・DT[pre]を1減算
→この操作でDT[pre]が0になったら、ansから1減算
・DT[aft]を1加算
→この操作でDT[aft]が1になったら、ansに1加算
・ans(この回終了後の得点種数を表示)
考え方どおりの実装で問題なくAC頂きました。
https://atcoder.jp/contests/abc343/submissions/50816601
以上