前置知识:偏序集、划分、链、反链。
Dilworth定理:对于一个偏序集,其最少链划分数等于其最长反链的长度。
Dilworth定理对偶定理:对于一个偏序集,其最少反链划分数等于其最长链的长度。
Missile Defence System POJ3700
问题描述:给定一个不存在相同元素的数组,求单调序列的个数,是的这些单调序列覆盖这个数组
剪枝要点:
(1)任意两个数必定是一个单调序列,因此有一个上界(n+1)/2
(2)根据Dilworth定理,如果最长单调递增序列长度为INC,最长单调递减序列长度为DEC,那么有一个上界min(INC,DEC)
(3)在一种最优的方案中,如果数x在一个上升序列中,那么选择在一个当前最后一项最大的必然最佳或者当前没有上升序列而x是该上升序列的第一个
(4)在一种最优的方案中,如果数x在一个下降序列中,那么选择在一个当前最后一项最小的必然最佳或者当前没有下降序列而x是该下降序列的第一个
(5)由(3)可以推出,上升序列的最后一项递减,即在(3)中可以二分搜索
(6)由(4)可以推出,下降序列的最后一项递增,即在(4)可以二分搜索