「杂谈」贪心中的邻项交换法
对于集合 \(S\) 上的二元关系 \(<\),如果 \(<\) 满足自反性、反对称性、传递性、不可比则称其满足严格弱序,形式化地来讲:
- 非自反性,Irreflexivity:\(\forall x\in S,x\not <x\);
- 传递性,Transitivity:\(\forall x,y,z\in S, \text{if}\ x<y\ \text{and}\ y<z\ \text{then}\ x<z\);
- 反对称性,Asymmetry:\(\forall x,y\in S,\text{if}\ x<y\ \text{then}\ y\not < x\);
- 不可比性的传递性,Transitivity of incomparability:\(\forall x,y,z\in S\) ,如果 \(x,y\) 不可比且 \(y,z\) 不可比,则 \(x,z\) 不可比,其中 \(x,y\) 不可比当且仅当 \(x\not < y\) 且 \(y\not < x\)
对于贪心策略中的“邻项交换法”,定义的二元关系必须要满足严格弱序才可以,前三条很好理解,最后一条要满足是因为,如果排序后存在相邻不可比元素 \(a,b,c\),其中 \(a\) 和 \(b\) 不可比,\(b\) 和 \(c\) 不可比,如果无法保证 \(a\) 和 \(c\) 不可比,那么需要比较 \(a\) 和 \(c\) 哪一个更“小”,让其位于前面,但由于不满足不可比性的传递性,所以无法处理这种情况。
综上所述,完成"邻项交换法"所定义的二元关系需要满足弱序关系,且排序结束后任意交换两个相邻元素不会使得答案更优。
栗题
Reference
One thing you should know about comparators — Strict Weak Ordering