Dilworth定理 的相关应用

讲的好的博客证明

总结一下:给定一个序列, (假定有重复数字, 没有重复的类似推导)
1:如果求每次在其中选出一个不下降子序列并将其删掉, 求删完整个序列所需要的选择子序列的次数
(相当于求一个不下降子序列最小划分size)
例: 1 2 4 3 5 就要删2次, 第一次1 2 3 5.

根据定理转换: 实际上就是求这原序列的最长下降子序列长度(求的方法时O(n^2)的dp, 或者nlogn,但是有与nlogn的我们要找的是第一个小于等于当前的值, 所以只能手写二分是实现找, 而不能再借助于函数了…. )

2:如果求每次在其中选出一个下降子序列并将其删掉, 求删完整个序列所需要的选择子序列的次数
(相当于求一个下降子序列最小划分size)
例: 4 2 1 5 3 就要删2次, 第一次4 2 1.

根据定理转换: 实际上就是求这原序列的最长不下降子序列长度(如果是有重复数字的在LIS中将lower_bound 改成 upper_bound 即可. 如果是没有重复数字的不改也行)

理解就是对应的序列长度中的每一个数分别在一个对应的子序列中.

在一些问题当中这个定理是很有用的!!! 所以请记住!
一般是将问题转化为求一个序列的某个下降或者不下降子序列的划分时用这个定理!!!

具体的模板在我的其他博客中有……

你可能感兴趣的:(序列dp)