Gifted Infantsのチーム戦略について
メンバー
yosupo, sigma, maroon
戦略
明確な戦略は特になかったです(完)。
いくつかのルールを守りながら(守らないこともある)、毎回適当にやってた感じです
ルール
- 今誰がどの問題を読んだか、考えたか の紙を作る
- 特に得意ではないジャンルを無理にやらない 例(yosupo: DP, 109 + 7, sigma: JOI, maroon: AOJ-ICPC)
- 解いた後でも苦手な実装だったら人に投げる
- ちゃんと実装を詰める
- ちゃんと声かけをする
- 必要なら厳しい言葉をためらわない
- 人がある程度燃えたら他の人が強制的に介入する
- 実装が重かったら相談する(想定よりはるかに重い実装方針を考えていて、相談すると綺麗になるってことが結構ある)
- 解法が 難しい / 未証明 / 貪欲 / 計算量が怪しい などの場合は相談する
- 有名問題っぽい見た目になったら他の二人に知ってないか聞く
あたりかな 明文化されていたわけではないです。とにかく相談を沢山するチームだったと思います。
練習セット
5時間セットをやる→反省する を繰り返したぐらいで、特に特別なことはしてないです。ちゃんと動き方とかの反省をするといいかもしれません。
Petrozavodsk Camp(9)
- セット数: 11日9セット(oooxoooxooo)
- 難易度: [ICPC-Japan, INF]
- 開催地: Petrozavodsk, オンライン(有料)
- 注意点: 凍死
MIPT Camp(6)
- セット数: 7日6セット(oooxooo)
- 難易度: Petrozavodskと同じかちょっと簡単
- 開催地: MIPT, 同時開催で世界のどっか(年による)
- 注意点: パスポートを忘れない
Opencup(11)
- セット数: 15 ~ 20セットぐらい
- 難易度: [ICPC-Japan, INF], 時々ゴミ
- 開催地: オンライン(無料)
- 注意点: 上2つのキャンプと同じ問題セットが使われることがある, 終了が遅い
知っての通り別にOpenじゃないです
Ejudge(15)
- セット数: たくさん
- 難易度: 様々
- 開催地: オンライン
キャンプとかOpencupの過去問が詰まったジャッジです。
これもOpenじゃないです
その他(13)
コドフォのGymとかRUPCとか夏合宿とか
ライブラリ
ライブラリにファイル容量制限とかがあって、それを超えて大変だったりした(html + @printerで作ってたら、印刷するOSによって容量が変わった なぜ?)
単体法 出典: GitHub - koosaga/DeobureoMinkyuParty: 럭스를 럭스답게 든든한 연습헬팟 더불어민규당
少なくとも行列式がバグっています
環境
ある程度は本番に環境を合わせて練習したつもりです。 突然環境が変わると上手くいかなくて悲しい気持ちになりがち(経験則)
個人的には キーボード >>>> エディタ >= OS >>>> その他 ぐらいの重要度
キーボード
OS
- Ubuntu以外の選択肢はないです(フラグ)。バージョンは最新のLTSでよさそう
- yokohamaはほとんどデフォルト設定だと思いました。WFではなんか見た目とかが弄られていました。
エディタ
- visual studio / atom が使えないことに注意。本番で使えるエディタ一覧はサイトから見れます
- 色々設定をする場合、それだけ時間を失うことに注意する必要があります
- 理想的には3人でエディタ, 設定を合わせることですが、あまり強制しようとすると喧嘩になります。
Gifted Infantsは
- maroon: gedit
- sigma: CLion
- yosupo: CLion
- CLionのキーバインド: emacs + (ctrl+c, ctrl+v, ctrl+z)=(copy, paste, undo)
でした。カオス。CLionはデフォルトで色々上手く動くのでいいです。でもノーパソだと発熱がすごい。
プリンター
印刷のタイムラグを表現するために、「ファイルをアップロードして1分後にダウンロード出来るようになる」サイトを作って使っていました。あんまり意味なかった気がする
おすすめ
CapsをCtrlに
setxkbmap -option ctrl:nocaps
で出来ます
ターミナルを簡単にリセット出来るように
alias c='tput reset'
コンパイルオプション
-Wall -Wextra -Wshadow -DGLIBCXX_DEBUG -ftrapv
を使う
check.sh
参考: 競技プログラミングでコーディングの際気を付けていること - うさぎ小屋
make $1 for f in tests/*$1*.in; do echo '#### Start ' $f ./$1 < $f done