lis
EMber _
人但有追求,世界亦会让路。
展开
-
NOIP模拟降雷皇&51nod 1376 最长递增子序列的数量
这两道题目都一样,只不过一个a[i]<=n,51nod 则a[i]<=10^9; 都是用树状数组做,找到那个当前值得最小位置然后插入更新,51nod上因为a[i]<=10^9所以要离散一下。uses math; const mo=1000000007; type node=record x,y:longint; end; var i,j,k,p,n,m,t1,t2,l,tot:lo原创 2016-12-12 21:15:41 · 334 阅读 · 0 评论 -
51nod 1218 最长递增子序列 V2
数组A包含N个整数。设S为A的子序列且S中的元素是递增的,则S为A的递增子序列。如果S的长度是所有递增子序列中最长的,则称S为A的最长递增子序列(LIS)。A的LIS可能有很多个。例如A为:1 3 2 0 4,1 3 4,1 2 4均为A的LIS。其中元素1和4一定会出现在LIS当中,元素2和3可能会出现在LIS当中,元素0一定不会出现在LIS当中。给出数组A,输出哪些数可能出现在LIS中,哪些数一原创 2016-12-13 15:12:47 · 348 阅读 · 0 评论 -
bzoj1107[POI2007]驾驶考试egz LIS
又见到神题了。。。 题解做法超神了。。 首先我们可以有一个并不显然的想法,就是把所有的边反向以后,题目要求的条件就变成了从任意一个点到i可到达,同时化简一下可以发现只要最左边和最右边可以到达就好了。 设l[i]表示1-i至少需要加多少条边,r[i]表示n到i需要加多少条边。 可以发现l[i]=i-1-pre,pre为左边LIS的长度,用树状数组维护即可O(nlogn)求出。 r[i]同理。原创 2017-05-08 22:11:08 · 503 阅读 · 0 评论