最长上升子序列
DOFYPXY
这个作者很懒,什么都没留下…
展开
-
[2017雅礼集训]day10 T2 数列 最长上升子序列
可以发现最后的最长上升子序列是由原序列中从某一个点开始的最长上升子序列A和最长下降子序列B组合而成的,贡献的方案数为numA *numB。注意找到更长的以后要把原来的方案数清零。 假设最终最长长度为R,最后答案要乘上2^(N-R),因为其他元素可以任意选择放左边或右边。 求最长上升/下降子序列及方案数可以用树状数组做。经典的dp方程:F[i]=max{F[j]+1}(a[i]type nod原创 2017-04-17 20:42:18 · 859 阅读 · 0 评论 -
[2017纪中10-25]凤凰院修真 LCIS最长公共上升子序列
题面 f[i][j]表示a序列考虑到i,b序列考虑到j且b[j]必须选的最长长度。 a[i]!=b[j]时,f[i][j]=f[i-1][j]。 那么当a[i]==b[j]时,f[i][j]=max{f[i-1][k]}+1,k#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using name原创 2017-10-25 17:01:33 · 381 阅读 · 0 评论