Java初心者の競技プログラミング日記

Dvorak配列でjavaを書いてます

AtCoder Beginner Contest 090

A - Diagonal String

s1.substring(0,1) + s2.substring(1,2) + s3.substring(2,3)

追記:s1.charAt(0) + s2.charAt(1) + s3.charAt(2) のほうがたぶん速い(コードを書くにしても動かすにしても)。

B - Palindromic Numbers

A以上B以下の値をすべて、このブログのメソッド(文字列)内にある回文判定メソッドで処理してカウントした。


C - Flip,Flip, and Flip......

俺はいったい何をしているんだ。この問題で87分も溶かしてしまった。しかもACできなかった。絶対に下がらないだろうと思っていたレートも下がってしまった。

場合分けをすれば簡単に解ける。

・nかm、どちらかが1の場合 → 1でないほうから2を引いたものが答え
・nかm、どちらかが2の場合 → 0
・それ以外 → (n-2)*(m-2)

僕は1の場合と2の場合を一緒にして考えてしまっていた。まさか2の場合は全部0だなんて思いもしなかった……いま振り返ってみればなんとあっけない問題だろう。前回のC問題より全然簡単じゃあないか。それぞれちゃんと紙に描くか、二次元配列を使って念入りにシミュレーションしてから回答すればよかった。下手に提出してWAが続くと、ただでさえのぼせやすい頭がさらに空回りしてしまうので、WAしてしまったときは、もうこれ以上考えられないくらい熟考して、可能性のある全ての値についてシミュレーションするべきだ。


D - Remainder Reminder

そのうち解く


まとめ

競プロのモチベーションはC問題への復讐心から多少上がった