贪心策略
Strict Weak Ordering
这是 std:sort 的前提条件。
- \(x\ge x\)(非自反性)
- \(x<y\),那么 \(y\ge x\)(非对称性)
- \(x<y,y<z\) 那么 \(x<z\)(传递性)
- \(x=y,y=z\) 那么 \(x=z\)(不可比性的传递性)
事实上可以由 1 和 3 推出 2。
只要满足 1 \(\sim\) 3 就可以排序,使用 std:sort 还需满足 4。
注意 stable_sort。
贪心策略
两种题型:
- 构造序列使得某个式子的值最小
- 感性地贪心取。
- 例如 \(a_i<a_{i+1}\),\(b_i\) 是一个排列,最小化 \(\sum a_ib_i\)。
- 取 \(b_i=n-i+1\)。
- 对序列重排,最小化某个式子的值
- 整理原式,抵消贡献,再贪心。
- 阿狸和桃子的游戏,[THUPC2023] 大富翁
- 交换法,记 \(\text{cmp}(i,j)\) 为考虑 \(i\) 在 \(j\) 前面和后面哪个更优。
- 皇后游戏
- [USACO23FEB] Fertilizing Pastures G,此时只需要考虑 \(i,j\) 两者之间的贡献
- 通过人类智慧满足 Strict Weak Ordering。
- 皇后游戏
- 整理原式,抵消贡献,再贪心。

浙公网安备 33010602011771号