分析:
这套系统最多能拦截的导弹数 就是 导弹高度的最长不上升子序列(下降或相等)
如果要拦截所有导弹最少要配备多少套这种导弹拦截系统 就是 导弹高度的最长上升子序列
因此直接用dp求就可以了
a[i]为第i个导弹的高度
dp[i]为以i结尾的最长不上升子序列的长度
方程 dp[i] = max( dp[j] ) + 1 (j=i-1 to 1, a[i]<=a[j])
最长上升子序列 只要把条件a[i]<=a[j] 改成 a[i]>a[j] 即可
本文共 279 字,大约阅读时间需要 1 分钟。
分析:
这套系统最多能拦截的导弹数 就是 导弹高度的最长不上升子序列(下降或相等)
如果要拦截所有导弹最少要配备多少套这种导弹拦截系统 就是 导弹高度的最长上升子序列
因此直接用dp求就可以了
a[i]为第i个导弹的高度
dp[i]为以i结尾的最长不上升子序列的长度
方程 dp[i] = max( dp[j] ) + 1 (j=i-1 to 1, a[i]<=a[j])
最长上升子序列 只要把条件a[i]<=a[j] 改成 a[i]>a[j] 即可
转载于:https://www.cnblogs.com/FuTaimeng/p/5270204.html