入緑

f:id:quf:20210725100422p:plain

Atcoder初参加のAB2完から3か月、14連Highest更新で緑色(レート800)になった。

(7/31) ぎりぎりだったので即入茶するおそれがあったが、耐えた。

f:id:quf:20210801143250p:plain

 

状態

前回のラブライブ

quf.hatenablog.com

 

数学力は等差数列の和の公式を毎回ググるレベル。

f:id:quf:20210729200900p:plain

 

 グラフからも分かる通り、ARCは一度も出ていない。心の安寧を保つため。

 

精進

競プロ界では過去問を解くことを精進という(らしい)。通説としても実感としても過去問をこなすのは重要で、これをやらないことにはレートは上がらない。

 

AtCoder Scores

f:id:quf:20210725100644p:plain

 

AtCoder Problems

f:id:quf:20210725100652p:plain

緑の最低限くらいのAC数という感覚。1か月前に入茶したときは104ACだったので今月はそこそこ頑張っている。

日々の精進で意識したのは、Streakを繋ぐことと、PCが目の前になくとも精進すること。

 

Streakは習慣づけのため。勉強は始めるまでが一番つらいので、惰性と義務感を使って始動する。どうしてもやる気のない時はABCのAで埋める。それ自体に学習効果はないが、やめなければやる気が出る日もある。

 

PCを使わない精進とは、机上精進と脳内精進。脳内に問題をストックしておけばPCの前に座っていない時間でも精進ができ、うれしい。

朝にスマホで問題を見て、昼に脳内(+紙とペン)で解き、夜実装するという生活リズム。脳内で解けた!という状態になると早く実装したくてPC精進にもとりかかりやすくなるのでおすすめ。

 

勉強したこと

緑までに学ぶべきアルゴリズムは以下のQiitaの内容が必要十分。

レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【中級編:目指せ水色コーダー!】 - Qiita

 

勉強には知識を頭に入れるステップとそれを自由に引き出せるようにするステップがある。後者は軽視されがちだが、時間制限一発勝負のコンテストにおいては特に差がつく部分なので意識して取り組む必要がある。

取り組み方としては解説記事・動画を見る、写経する、類題を解く、などなど。 

 

pythonの標準ライブラリは、茶色脱出レベルだと以下をおさえておくくらいで十分そう。

  • collections
  • itertools
  • heapq
  • bisect
  • math

statisticsやfunctoolsなども便利。

 

エディタの話。茶色になるまではIDLEを使っていたが、最近VSCodeを使い始めた。便利。

ライブラリの整備なども取り組むとよさそうだが、今のところUnionFindくらいしか作っていない。スニペット化するにあたり、コードを自動でjsonに変換してくれるサイトがあってとても助かった。

VSCodeスニペット用コード作成ツール

 

よかったコンテンツ

早稲田大学 早水桃子研究室

2021年度 離散数学入門 〜グラフ理論の世界にようこそ〜 - YouTube

まだ#2までしか見てないが良さそう。基礎から丁寧丁寧丁寧にやってくれるのでネット上の記事をかいつまんで勉強してきた身としてはありがたい。

 

アルゴリズムロジック

競技プログラミングで解法を思いつくための典型的な考え方 | アルゴリズムロジック

問題を解くときに誰もがなんとなく考えていたことが言語化されている。

上にも書いたがコンテストでは知識に負けず劣らずその引き出し方(考察力)が重要。

よって基本的なアルゴリズムを学んだ次に勉強するべきは典型考察。このページと典型90に目を通しておけばABCの問題の大部分はカバーできる。

 

今後の目標

もちろん目指すは水色、と言いたいところだが、相当時間がかかりそう(最短半年~2年くらい)。とりあえずはレートをあまり気にせず、StreakとRPSを愚直に積んでいく心持ちで生活をしたいと思っている。