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によって容量が変わった なぜ?)

www.dropbox.com

単体法 出典: GitHub - koosaga/DeobureoMinkyuParty: 럭스를 럭스답게 든든한 연습헬팟 더불어민규당

少なくとも行列式がバグっています

環境

ある程度は本番に環境を合わせて練習したつもりです。 突然環境が変わると上手くいかなくて悲しい気持ちになりがち(経験則)

個人的には キーボード >>>> エディタ >= OS >>>> その他 ぐらいの重要度

キーボード

  • 英字配列以外の選択肢はないです。日本語配列は今すぐやめましょう。ポルトガル配列はやめろ
  • 高速にタイピング出来る人がいないとライブラリ写経が絶望的になる

OS

  • Ubuntu以外の選択肢はないです(フラグ)。バージョンは最新のLTSでよさそう
  • yokohamaはほとんどデフォルト設定だと思いました。WFではなんか見た目とかが弄られていました。

エディタ

  • visual studio / atom が使えないことに注意。本番で使えるエディタ一覧はサイトから見れます
  • 色々設定をする場合、それだけ時間を失うことに注意する必要があります
  • 理想的には3人でエディタ, 設定を合わせることですが、あまり強制しようとすると喧嘩になります。

Gifted Infantsは

でした。カオス。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

みたいな、コンパイルしてサンプルを一括で全部試せるシェルスクリプトを用意すると便利です。