【AtCoder】青色になりました。
過去の色変記事
Rating 変動
AtCoder Problems
Rating History
振り返り
水色になってから緑パフォを出すことはなくなり、下振れはなくなったが、上振れもほぼなかった
使用言語を変更したり、学業を優先したりしたためか、青になるまでにはかなり時間を要した
まずは維持を目標に頑張っていきたい
各トピックに対して思うこと
問題埋め
やはりこれが一番重要だと思う
自分より後に始めて自分より強くなっている方々は、皆とてつもない量の問題を解いている
AtCoderだけではなく、CodeforcesやAOJ-ICPCなども解いた
問題を埋めるタイプの精進は、良くも悪くもそのレート帯で知っているべきことを身に付けているので、パフォーマンスにおいて上振れも下振れもしにくいと感じた
いろいろなサイトの問題を解くと、いつまでも簡単な問題ばかり解けてしまうので良くないと思った
バーチャルコンテスト
やりすぎると復習が追い付かないので昔に比べるとあまりやっていない
AtCoderと人権時間帯のCodeforcesのコンテストに全部出ることにして、普段はインプットすれば良いというのが今の立場
おそらく、レートが上がるにつれ、知識の応用や、短時間で詰めるなどコンテストに特化した差別化要素が大きくなるため、次第にバーチャルコンテストの重要性が上がってくるのだとは思う
まだ「知らないことを知る」だけでもレートが上げられるレベルにいると考えている
使用言語
C++に変更した
速度面で困る思いをしたくない、平衡二分探索木やACLを使いたい、CodeforcesやAOJの問題を解きたい、ICPCに出たい、強い人のコードを読みたい、などが理由
Streak
簡単すぎる問題を解いてもあまり得るものがないと思ったため、切った
意外とStreakを切ってもモチベーションは続いた
知見まとめ
取り組んだコンテストの記録や、アルゴリズムの解説および問題例をScrapboxにまとめた
タグや検索機能があるため、ノートに書くよりも後から参照しやすいと思う
LaTeXも書けてうれしい
チーム戦
自分が知らないことを知るきっかけになって良い
刺激にもなる
シンプルに複数人で問題を考えるという行為も楽しい
ライブラリ整備
ないものは多少自分で書いているが、他の人と比較しても大差ないと思う(むしろ少ないくらいか)
蟻本
蟻本に載っていることは難易度に関係なく典型になっているという事実があるため、もう少し優先度を上げても良いと思う
まだまだ全然読み切れていない(フローは未着手……)
地味に難易度順に書かれていないのが罠
解説AC
同レート帯の人と比較するとあまりしていないと思う
新たな何かを学ぶため、チーム練でチームメイトが解いたため、などの理由で解説ACすることは多いが、普段の問題埋めではあまり解説ACしていない
しかし、解けないので後で解こう→そのまま解かない というパターンも多いため、もう少し解説ACして良いと思っている
【AtCoder】Pythonで競技プログラミングをするときのTips
追記:2021/03/14に固定を外しました。
自分用メモです
テンプレ
import sys readline = sys.stdin.readline sys.setrecursionlimit(10**8) mod = 10**9+7 #mod = 998244353 INF = 10**18 eps = 10**-7
入力
基本readlineで、文字列の時は改行文字が入ってしまうので.rstrip()する
import sys readline = sys.stdin.readline # 整数(1つ) N = int(readline()) # 整数(複数) x,y,z = map(int,readline().split()) # 整数(10^5) A = list(map(int,readline().split())) # 整数(1つだけ分ける) x,*A = map(int,readline().split()) # 整数(1つを複数行) A = [int(readline()) for _ in range(N)] # 整数(複数を複数行) A = [list(map(int,readline().split())) for _ in range(N)] # 文字列(1つ) S = readline().rstrip() # 文字列(複数) S = readline().rstrip().split()
defaultdict
from collections import defaultdict d = defaultdict(int) # 初期値を0にした辞書 d = defaultdict(lambda: 0) # 同様 d = defaultdict(lambda: 1) # 初期値が1 d = defaultdict(lambda: defaultdict(int)) # 引数を2つ取る d['key']['a'] += 3
配列
PyPyでの利用を想定
# 速い [None] * N [[None] * N for _ in range(N)] # 遅い(Pythonはこっちのほうが速いこともある!?特に2次元のとき) [None for _ in range(N)] [[None for _ in range(N)] for _ in range(N)]
enumerate,zip
楽な分岐
N = 1 if N == 1: print(0) exit()
sort
if __name__ == '__main__':
Counter
math
deque
itertools
Priority Queue
二分探索
再帰関数
BFS
DFS
bit全探索
nCr mod
DP
Union Find
Warshall Floyd
Bellman Ford
Z-Algorithm
BIT
NumPy
Scipy
2021年の目標
もう12分の1終わってますが、去年書いてみて結構良かったので今年も書きます
配点も書きます
(去年より雑になっている気がする…)
競技プログラミング (30)
- AtCoder 1800 (10)
- Codeforces 2000 (10)
- 2000 AC (10)
学業 (20)
- (min(GPA, 4.0)-3.0)*20
これは頑張りすぎないという意志です(適当)
資格 (20)
基本/応用情報、統計検定、数学検定、TOEFL/TOEICなどを頑張りたい(フワッとしすぎだろ)
その他 (30)
本を読む(学術書だけでなく)
働く
運動する
創作/芸術活動をする
適度に外出する(引きこもらない!)