ABC182の感想
AtCoder Beginner Contest182に参加しました。
問題はこちらから。
結果はこんな感じでした。
3181 / 7497 で パフォーマンス785(茶色)でした。
a~d まで4問解くことができましたが、これでも茶色なんだなーと思ってしまいます。ただ、今回 c 問題を試験終了 4 秒前に正解することができました。早く解けるに越したことはないのですが、100分間最後まで集中を切らさないで取り組めたのは褒めたいと思います。
さて、今回の感想を述べていきます。
a問題
snsのフォロワーを増やす問題です。条件より
a * 2 + 100 - b
が答えになります。0 <= a, b <= 10000なのでこれでおしまいです。
私のnoteもsnsと呼ぶのかな、最近は少しずつですが、フォローしてくださる方や、閲覧してくださる方が増えてきて、嬉しい限りです。頑張って書いていきます。
b問題
何個の数字を割り切れるかどうかの問題です。問題文を読んだときにGCD(最大公約数)と書いてあったので、少し焦りました。本当にabcのb問題なのかと疑いました。結局は「たくさん割れる数を見つけましょう。そしてその数は何ですか?」という問題です。
制約がかなり緩く、
1 <= n <= 100
2<= ai <=1000
ですむので、愚直にやっても最大ケースで10^5で終わります。愚直にやりましょう。
c問題
3の倍数が作れるように桁を消していく問題です。前回のabcでは8の倍数が出題されていましたね。倍数が流行の最先端なのでしょうか?
3の倍数の判定法は各桁の和が3の倍数となることです。そのため各桁を3で割ったときに、
余りが0の個数
余りが1の個数
余りが2の個数
をなんとかする問題に置き換えられます。何とかしましょう。余りが0のやつは何もしなくても大丈夫です。1のやつと2のやつを何とかします。
1, 2のペアで3の倍数
1が3個で3の倍数
2が3個で3の倍数
これらを組み合わせます。私は1,2のペアを先に作って、そのあと個別に処理をしました。が、どうやらダメみたいですね。1WAが取れませんでした。そのため、先にD問題を解くことにしました。
(結局、1,2のペアを先に処理と個別処理->1,2ペアを両方やって、少ないほうを採用する形でacしました。終了2分前に気づいて、焦りながらもなんとか書き上げました。あぶないあぶない。)
d問題
手順通りに前後に進んで、最も先に進んだときの座標を求める問題。この問題を見たときに次のような問題がぱっと浮かびました。
10mの井戸の中にカエルがいる。1日で3m登れるけど、寝ている間に2m落ちる。井戸から出れるのはいつか?
結局、1日で1m登る計算になるけど、10日という答えは間違い。8日目に7+3で出れるよね。
というお話です。
本問題も同じ構造なので、1サイクルの結果と1サイクル中の最も進んだ点の位置の2つを管理すれば解けるなーって思いました。実際その通りで、1サイクルは累積和として管理、最も進んだ点は累積和を作るときに、最大値を更新しながら取得しました。
cで苦戦して結構焦ってましたが、dがすんなり解けたので、落ち着きを取り戻しました。
e問題
20分ぐらい考えました。なんかみたことあるなー(abc176eのbomber)って思いながらも、形にすることはできませんでした。時間があっても、解けたかどうか怪しいです。
以上の4完という結果でした。
正解数もレートも伸びてきているので、悪くはないのですが、
「結構問題を解いているのに、まだパフォーマンス800か、、1200ぐらいは到達できると思っているのにな」
という傲りを持ってしまいます。レートは相対的なものなので、「参加している皆さんが強い、そういうもんだ。」と毎回言い聞かせてます。
数字を求めて飽きるのも癪なので、まったりとやります。今も、スコアのもやもやはありますが、実際楽しく臨めてますし。
この記事が気に入ったらサポートをしてみませんか?