首先,这题的第一问大家都懂,最长不上升子序列的长度
学习了几天闫式思考法f[i]表示以a[i]结尾的最长不上升子序列的长度,其实就是倒着跑最长不下降子序列的长度,第一问的答案就是max(ans,f[i]);
第二问,想不到好的贪心方法,就看了y总的提高课:(不会截图凑合看吧)贪心思路很清晰,重点是对贪心可行性的证明
我们假设前一部分已经是最优解了,我们贪心的算法,是将x后面的数接到a后面,而我们最优解的算法是将x后面的数接到b后面,由我们的贪心可以得到,x一定≤a,而a一定≤b,
那我们能否a,b互换呢,显然接在b上的x可以接到a后,而接到a后的x可以接到b后面。那么经过最多n - 1次操作,我们就能把贪心的序列转化成最优解的序列,并且没有产生新的
答案损耗,由此,贪心成立。