贪心策略

Strict Weak Ordering

这是 std:sort 的前提条件。

  1. \(x\ge x\)(非自反性)
  2. \(x<y\),那么 \(y\ge x\)(非对称性)
  3. \(x<y,y<z\) 那么 \(x<z\)(传递性)
  4. \(x=y,y=z\) 那么 \(x=z\)(不可比性的传递性)

事实上可以由 1 和 3 推出 2。

只要满足 1 \(\sim\) 3 就可以排序,使用 std:sort 还需满足 4。

贪心(ouuan)

注意 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。
      • 皇后游戏
posted @ 2023-03-26 20:40  Network_Error  阅读(50)  评论(0)    收藏  举报