# ABC185 - 知見集 * `std::max, std::min` は `initializer_list` 型を受け取れるので積極的に使っていきたい * `T a, b; tie(a, b) = ...; if (a > b) swap(a, b);` の代わりに `auto [a, b] = minmax(...);` とかける (C++17) * `signed main()` は呪文 `#define int long long` のために使う * `return puts("No") & 0;` を使えばフォーマッタを使っていても 1 行でかけるが、有意な差はあまりないし、ICPC ではあまり意味がない * GitHub Copilot は補完機能として有用 * GNU C++ の符号付き整数型 `short, int, long, long long, int8~64_t, int_fast8~64_t, __int128_t` * 配列の隣接要素を見るときは番兵を使用 * 配る DP はバグを減らしやすいが、貰う DP の方がバグらない問題もあるし、貰う DP にすることで高速化できることもある * 一部の桁 DP を除くほとんど全部の DP は、全体初期化 + 一点初期化で十分 * `vector<bool>` は順番がぐちゃぐちゃなので使わない方がよい * ICPC 用ライブラリとしてモノイド抽象セグ木を持っておこう * 変更部分: 型、単位元、結合関数 * インターフェース: 点更新、点加算、区間 Fold * 半開区間
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up