动态规划经典例题

  1. 把一个序列 A A 变成非严格单调递增的(单调不下降的),至少需要修改多少个数。

    序列 A A 的总长度减去 A A 的最长不下降子序列长度即为答案。

    证明:

    对于最长不下降子序列中相邻两数 A i , A j A_i,A_j ,之间有 A j + 1 , A j + 2 ,   , A i 1 A_{j+1},A_{j+2},\cdots,A_{i-1} ,需要改变这 i j + 1 i-j+1 个数,以此类推,也就是序列 A A 的总长度减去 A A 的最长不下降子序列长度

  2. 把一个序列A变成严格单调递增的,至少需要修改多少个数?

    构造序列 B i = A i i B_i=A_i-i ,序列总长度减去 B B 的最长不下降子序列长度。

    证明:

    严格单调递增的 A A 序列, A i A j i j A_i-A_j\ge i-j

    变式: A i i A j j A_i-i\ge A_j-j

    只要按照 1 1 求解即可。

猜你喜欢

转载自blog.csdn.net/zyszlb2003/article/details/94712717