摘要:
题意:给出N个数A_1 to A_N和一个双向队列(两头都可以push),按顺序从N个数中取数,取出的数要么丢弃,要么从队列一端压入。队列中的数要求是不降。求最多能放入多少个数。思路:由于A_1 to A_N是按顺序取,因此可以从右往左求最长不增子序列a[i]和最长不降子序列b[i],然后枚举每个数作为第一个放入的元素,得到a[i]+b[i]-1。但是这还不是答案,因为两个序列是不降和不增,虽然从同一个数开始递增递减,类似 4 4 3 2 1 5 这样的数列,第二个4就计算重复了,所以要处理一下,减去重复的数。求最长不增序列和最长不降序列要用O(nlogn算法)。1#include2#incl 阅读全文
posted @ 2014-03-06 12:24
byluoluo
阅读(237)
评论(0)
推荐(0)