はじめに
これは、Advent Calender 「競技プログラミングを始めたばかりの人に伝えたいこと」 7日目の記事です
この記事では、個人的に革命的だった競プロの小技を書いていきます
拡張機能
ac-predictor
言わずと知れたパフォーマンス予測システム
順位表からパフォーマンスとレート変化が分かるのである程度安心できる
AtCoder Language Buttons
提出のところに言語選択のボタンを設置できる。
PythonとC++を使う僕にとっていちいちスライドさせるUI(?)をいじる必要だったり、言語を間違えて提出してペナ、ということが防げるので便利
atcoder_submit_keyboard_shortcut
TwitterのようにCtrl+Enterで提出できるもの
ツイ廃の僕にとってかなり使いやすい
AtCoder_submit_keyboard_shortcut
コンテスト中でも順位表からその問題のDiffなどのいろんな情報を取得できる
かなり高性能だが、重いので自動更新をするコンテスト中での使用は撤退後がいい
他にも、いろいろ便利な拡張機能があるので是非調べみて欲しい
コーディングテクニック/アルゴリズム
rep(i, n)
ループを書く時にいちいちforを全て書くのは面倒なので、以下のようにする
#define rep(i, n) for(ll i = 0; i < (n); ++i)
こうすると、rep(i, n)とするだけでn回ループすることができる。
書く量が一気に減るのでかなり便利
chmin/chmax
変数をもう一つの変数と比較して、もう一つの方が大きかったら(小さかったら)代入して、trueを返す。
比較と代入を一気にできるので意外と便利
template<typename T> bool chmin(T& a, T b){if(a > b){a = b; return true;} return false;}
template<typename T> bool chmax(T& a, T b){if(a < b){a = b; return true;} return false;}