こんにちは。部内ハッカソンで寝不足のmehm8128です。
このブログはアドベントカレンダー30日目の記事です。
10/9にAtCoderでついに茶色になりました(ABC222)(2ヶ月も前)。夏休みのブログリレーにもう少しで茶色になるって話を書いたのですが、その後3回参加して茶色になりました。
そのあとさらにABC223で緑パフォまで出してしまって驚きました。
traPでAtCoderやってる人たちって色の平均が水色とかなので茶色に上がったくらいで...と思うかもしれませんが許してください。
現在はレートが上がったり下がったりして緑はまだまだ遠いなーって感じですが入茶までとその後について書きたいと思います。
入茶
入茶するまでにしていたことは主にABCへの参加、過去問、アルゴリズムの勉強などです。
過去問はB問題をABC126まで遡り、C問題は今のところABC155まで遡っています。
過去問は解いた分は全てエクセルでまとめていて、特にC問題は解くときのポイント的なのを記録しています。
アルゴリズムは二分探索、bit全探索、累積和、尺取り法、動的計画法、幅優先探索、深さ優先探索、ダイクストラ法などを勉強しましたがC問題だとまだあまり使う機会はない気がしています。
とにかく毎回B問題までを速く解いて、残りの時間でC問題を解けるようにしましたが、速いときでB問題までを6分、C問題を20分程度で解き終わったりできました。もちろんC問題が解ける回解けない回があるのですが、過去問を解くことによって解ける問題がどんどん増えていきました。
今後はC問題の過去問を解き進めていって速く確実に解けるようにして、D問題も解けるようになればいいなーと思ってます。
その後
ABC224以降ではレートがかなり下がったことがあったり、少しずつ上がったりって感じで緑は遠そうです。
ABC224はTLEでC問題が解けなかったのですが、どうやらPythonで提出していたのが悪かったらしく、終了後に先輩に教えていただいてpypyで出したらACしました。調べたら色々出てくるのですが、実行速度が基本的にpypyの方が速いらしく(再帰など例外はあるらしい)、それが原因だったようです。今後は気をつけていこうと思ったのですが、そもそもC++使えば迷わずに済みそうな気がしたのでC++の勉強を頑張ります。
ABC226についてはいくら直してもREが出てしまい、list index out of rangeが怪しいと思って何回も確認したのですがそこのエラーは見つからずにコンテスト終了してしまいました。コンテスト本番では再帰を初めて書いたので書き方に問題があるのかと思い、「Python 再帰 エラー」で検索したところ、
import sys
sys.setrecursionlimit(1000000000)
みたいなのを書き忘れていたようです...再帰回数の上限を上げるやつですね。
知ってはいたのですが、完全に忘れてました。これから気をつけたいと思います。
ちなみにその後のABC227ではC問題まで解くことができ、緑パフォ出せました。
そしてABC228では変な場合分けしてTLE連発したり、ABC229では動的計画法と勘違いして時間無駄にしたりと、色々とやらかしてます。
普段からかなりケアレスミスみたいな感じのが多い方なのでここでもそういうのが響いてきますね...。
また、競プロとは関係ないですが機械学習の勉強とか興味あるので色々調べたりして勉強してみようかと最近は思ったりしてます。
まとめ
今後は入緑を目指して頑張っていきたいと思います。
明日の担当は多分ひしもちさんです。お楽しみに!