数え上げテクニック集
-
2 状態をまとめる
- DPは全探索の高速化
- 状態を同一視することで高速化する
- まとめられる条件
- 遷移先状態が同じ
- 遷移につく係数が同じ
- まとめられた状態すべてが問題文の条件を満たすか満たさないかのどちらか
- ARC059F
- codefestival_2016_final_F
- AOJ2439
- DPは全探索の高速化
-
3 探索順の変更
-
4 条件の言い換え
-
5 greedy からの帰着
- 「操作で作られる可能性のある列の個数を求めよ」は複数の操作列で同じ列が作られる時に難しい
- 産物から操作列を一意に定める方法があれば数えやすくなる
-
6 場合分けのテクニック
- パラメータで場合わけ
- disjointになるように注意
- AGC013D
- パラメータで場合わけ
-
7 線形和への分解
- 僕が演算順序の変更と呼んでるものに近い
- ビット演算を桁ごとに分解
-
8 部分群のテクニック
- 操作が可逆で全域→部分群
- ラグランジュの定理
- 不変量の数の予想
- 偶数なら偶奇の不変量がありそう
-
9 再帰的な定義の利用
-
10 桁DP について
-
11 高速化のテクニック
-
12 行列を用いたテクニック 26
-
13 小さい確率を無視する 29
-
14 二項係数のテクニック 30
-
15 包除原理 33
-
16 「解けない問題」を見極める