恩,纯水。。高一的时候连平方都不知道,只知道nlogn,后来才知道平方的,额,果然是dp菜。
题目大意:
给你一列数,求单调不上升子序列,以-1结尾。
简略题解:
用单调队列维护这个序列,如果这个数比队尾数<=那么直接插到队尾。如果比队尾数大,那么可以往前找到第一个比这个数大的数,插到它后面,最后队列的长度就是答案。
至于这个算法为什么是对的,我想这个算法本身就是很好的证明吧(很多人问过,可是我太菜了。。)。
附程序:
本文介绍了一种使用单调队列求解最长单调不上升子序列的方法。通过维护一个单调递减的队列,对于每个新元素,找到合适的位置插入,并确保队列的长度即为最长子序列的长度。
恩,纯水。。高一的时候连平方都不知道,只知道nlogn,后来才知道平方的,额,果然是dp菜。
题目大意:
给你一列数,求单调不上升子序列,以-1结尾。
简略题解:
用单调队列维护这个序列,如果这个数比队尾数<=那么直接插到队尾。如果比队尾数大,那么可以往前找到第一个比这个数大的数,插到它后面,最后队列的长度就是答案。
至于这个算法为什么是对的,我想这个算法本身就是很好的证明吧(很多人问过,可是我太菜了。。)。
附程序:
805

被折叠的 条评论
为什么被折叠?