导弹拦截(最大不上升 或 不下降子序列,dp)

导弹拦截(最大不上升 或 不下降子序列,dp)_第1张图片

导弹拦截(最大不上升 或 不下降子序列,dp)_第2张图片

算法分析:

1.求最长子序列

1.每次输入时,计算每个元素对应的序列的长度

  1.向前遍历找大于当前元素的数

  2.若之前元素对应长度+1 大于当前长度,更新当前长度

导弹拦截(最大不上升 或 不下降子序列,dp)_第3张图片

导弹拦截(最大不上升 或 不下降子序列,dp)_第4张图片

 2.若当前元素对应长度 大于最大长度,更新最大长度

导弹拦截(最大不上升 或 不下降子序列,dp)_第5张图片

 2.dilworth定理

故需要求的系统个数,等价于求该数列的最大递增子列长度

导弹拦截(最大不上升 或 不下降子序列,dp)_第6张图片

导弹拦截(最大不上升 或 不下降子序列,dp)_第7张图片

你可能感兴趣的:(dp算法,算法)