- 出来る限り複数の要素を入れず、シンプルに
- 使用するアルゴリズムの名前ではなく、問題の名前
- x: Pollard Rho, Hungarian
- o: Factorize, Assignment
- タイトルID: snake_case 既に守ってないのがありますが…
- タイトル: Title Case 接続詞(on, in, of) とか以外の単語は先頭を大文字にする奴
- lca, rmq, scc, sat, mst, ... など、有名なものは略称でもOK(明確な基準は無い)
- ストーリーは無し
- 競プロにある程度親しんだ人がわかればいい、細かいところは気にしない
- 「.」 vs 「。」、「,」 vs 「、」、「ください」 vs 「せよ」など
- わかりにくいなどの指摘が来たら適時直す
- 基本的に
- 0-indexed
- 半開(左閉右開)区間
基本TL 5s 想定解目安: 500ms ~ 1000ms サーバーはなんか遅めっぽい 爆速になりました(GCP C2)
- 基本的に制約を減らすよりTLを伸ばす方針で
- 定数 mod は特別な理由がなければ 998,244,353
- 値は特別な理由な無ければ 0 <= x <= 1,000,000,000
- 値が負でアルゴリズムが変わり得る(最短経路, フロー)場合は |x| <= 1,000,000,000
- グラフは、(自明な変形(自己ループ削除 / 多重辺は重みの最大を1本残す)で答えが変わらない AND 単純じゃないと出力に不具合が生じる)時のみ単純
- 有向木は 0 <= p_i < i
目安一覧
- 線形, 軽いlog: 500,000 ~
- 重いlog: 200,000 ~
- log^2, sqrt など: 100,000 ~
- 木を作ってください: (a, b)のリストを出力
- 有向木を作ってください: 頂点ごとに親の頂点を出力
- 何かを最小化してください: 基本的に構築もする。最小値、構築 共に出力する
- 解が存在しない場合
- 基本的に-1
- -1ではダメな場合(例えば解が存在する場合も-1を出力しうるなど)、
INFINITY
、-INFINITY
など