こんばんは、ふるやん(@furuya1223)です。
みなさん、怠惰ですか?
私は怠惰です。
(©TN,K,Re:ZEROP ペテルギウスだけ♪怠惰スタンプ)
怠惰なのでこの記事も書こうと思ってから書き始めるまで数日かかりました。
怠惰だから書けないんですよね
— ふるやん (@furuya1223) September 24, 2019
本題へ入りましょう。
はじめに
タイトルが「怠惰でもできる精進」となっていますが、これから紹介する方法はあくまで「怠惰な私でもできた精進方法」です。
そのため、万人に合うわけではないです。
合えばラッキーですが、試してみて合わないなと思った場合は、別の方法を模索してみるのが良いと思います。
では、本題へ入りましょう。
本題
目標設定
一日あたり 0.6 問の新規 AC を目標にしましょう。
常に目標を達成しつづける必要はありません。全体で見たときに一日あたり 0.6 問(以上)の新規 AC があるようにしましょう。
つまり、10 日間サボっても、次の日に 6 〜 7 問新規 AC すれば大丈夫です。
難易度は何でもいいです。
解説 AC も大丈夫です。ただし、よく分からないまま写経 AC するのはやめましょう。
進捗管理ファイルの作成
Excel で新規ファイルを作ります。
一番上の列に「日付」「当日AC数」「累計AC数」「目標」と書きましょう。
その下の列を、「今日の日付」「(空欄のまま)」「現時点のAC数」「現時点のAC数」としましょう。
現時点の AC 数は、AtCoder Problems で確認しましょう。
例:furuya1223 なら https://kenkoooo.com/atcoder#/user/furuya1223 で確認し、1005 AC(記事執筆時点)。
続いて、その下の列を「=A2+1」「(空欄のまま)」「=IF(B3=””,””,C2+B3))」「=D2+0.6」としましょう。
こんな感じになります
続いて、A3 から D3 を範囲選択し、選択範囲の右下にカーソルを合わせて「+」記号を出した状態でクリックし、そのまま下へドラッグしましょう。A 列には連続日付が埋められるはずです。
適当に 2 ヶ月分くらい伸ばしておきましょう。
すると、こうなります。
ここで、「当日AC数」の欄の、B3 以下に整数を入れると、以下のようになります。
続いて、C2 から D 列の最下部(2 ヶ月ほど先のマス)を選択し、「挿入」タブから折れ線グラフを挿入します。
挿入したら、「データの選択」を用いて、系列を「累計AC数」と「目標」の 2 つにして、横軸を「日付」の A2 から A 列最下部までにします。
また、グラフにおいて「当日AC数」のほうが手前に来るように、系列の上下を設定します。
さらに、縦軸の範囲の下限を、最初の目標の値にしましょう。
すると、こうなります。
これでファイルは完成です。
作るのが面倒という方のために、このサンプルファイルを置いておきます。DLして好きに変更してください。
日々の活動
PC を開くときは毎日、作成した Excel ファイルを開くようにしましょう。デスクトップとかに置いておくと分かりやすいですね。
新規 AC したら、当日の日付の「当日AC数」の列に、「1」と書きましょう。さらに AC したら、その数を 1 増やしていきましょう。
AC しなかった日が上にある場合は、「0」を埋めておきましょう。
折れ線グラフの「累計AC数」の線が、「目標」の線を大きく下回る状態が続かないようにしたいですね。
なんかまあ、こんな感じになります。
グラフの位置は、見やすいように適当に変えてください。
「累計AC数」が「目標」を大きく上回る状態が続いた場合は、その日の「目標」の欄を「累計AC」の欄と同じ値にしてリセットしましょう。
こうなります。
おわり
おわりです。お疲れさまでした。
余談
以前、AtCoder黄色になる方法 という記事を書きました。
その記事で、当時のレート遷移の図を載せています。
今はここからレートが下がってしまっていて悲しいのですが、それは置いといて。
この「こどふぇす予選B(通過)」というのは、人生初のオンサイトコンテスト予選通過なんですよね。
当時はまだ競プロに真面目ではなく、お昼の予選中に親に昼食に呼ばれて、考察用紙をリビングに持っていってご飯を食べながら考察していたなあ。
で、なんとか通過できて、オンサイト行くぞーとなったわけですが、せっかく行くんだからそれまでに強くなりたいと思って、目標を設定したんですよね。
それが「本戦までに 500 AC」でした。
当時の AC 数と、本戦までの日数から計算した結果、1 日あたり 0.6 問解けば大丈夫ということになりました。
そういう経緯から生まれたのが、この目標です。
私は怠惰なので、「毎日 1 問解く」という目標を設定すれば 3 日で失敗することが分かっていました。
なので、当時にこの Excel ファイルを作成し、ゆるい目標で進捗を管理するようにしました。
「毎日継続」という目標を立てると、失敗した瞬間にやる気が無くなるんですよね。僕の場合。筋トレ然り。
なので、下回ってからも挽回できるように(その挽回がハード過ぎないように)目標を設定する必要がありました。
僕みたいな性格の人には合っているんじゃないかなあ。
この目標はゆるいですが、効果はあると思っています。
「塵も積もれば山となる」と言います。さすがに塵が積もって山にはならないと思いますが。
「毎日 1 問解くぞ!」と思って 3 日で終わったら 3 問です。
この方法で 10 日続いたらだいたい 6 問ですよ。すごい。
これは長期間続けると有効になる方法なので、PC 立ち上げたら Excel ファイルを開く癖をつけましょう。それが無理な人は、僕にはどうしようもないですね。
競プロで強くなるために大量の問題を解く必要はあるか?
あるに決まってるんですよね。
ただし、解くよりも重要なことがあると思います。
AtCoder黄色になる方法 でも書きましたが、これです。
「解いた問題数」よりも「見た解説数」でレート変化が決まると言っても過言ではないと思います。
「量より質が大事だ」という意見がありますが、それは「量をないがしろにしていい」ということにはなりません。
簡単な問題で AC 数を稼ぐのはよいか?
割合によります。
AtCoder Problems の User Page には、Recommendation という問題推薦機能があります。すごい。
Moderate の難易度には、コンテスト中に自分が解けるか解けないか微妙なラインの問題が並んでいるようです。
この難易度は、練習で取り組むのに非常に良いものに思えます。
ですが、今回紹介した目標を維持するために、Moderate の問題ばかりを解くのはやめましょう。
「勝率 5 割は楽しくない」という話があります。
これはスプラトゥーンのような対戦ゲームの話ですが、競プロも同じでしょう。
取り組む問題の 5 割が自力で解けて 5 割が解けないのは、面白くないと思います。
面白くないと続かないので、解きやすい Easy の問題を重点的に解きましょう。
グラフを見て、余裕がありそう( 3 日で 1 問解ければ大丈夫、みたいな)だと思ったら、Moderate に取り組むのも良いと思います。
ただし、30 分以上考えて分からないなら解説を見ましょう。解説を見て理解するのも、理解した方針で AC するのも、非常に勉強になります。黙々と考えている時間より遥かに。
「下手の考え休むに似たり」という言葉がありますね。厳しい言葉です。
問題を解く以外の精進は?
「聞いたことあるけど詳しくは知らないアルゴリズム・データ構造・テクニック」について調べると良いです。
今の僕なら「メビウス変換」「convex hul trick」とかかなあ。
暇なときにスマホで調べる程度でいいです。実装できそうなら、問題を探してチャレンジしましょう。
せっかく聞いたことあるのに、問題に出会うまで勉強しないのはもったいないですね。
ネットで調べてもよくわからない場合は、レベルが高すぎる可能性がありますが、知りたい場合は僕のマシュマロにでも書いてください。
解説記事を書きます(書けたら)。
匿名の質問やメッセージを受け付けています!
https://t.co/p3EfwjMH24 #マシュマロを投げ合おう— ふるやん (@furuya1223) May 24, 2019
また何か思いついたら追記するかも。