自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2)
  • 收藏
  • 关注

原创 最长公共子序列nlogn算法

求两个序列的最大公共子序列(LCS),普遍的动态规划算法时间复杂度为O(n^2),在两个序列的长度很长的时候运行时间过长。可以转化为最长上升子序列(LIS)来求,时间复杂度可以优化到nlogn。1.首先说一下转化为LIS的方法:  找到s1序列中每个元素在s2序列中的位置,并用这些在s2中的位置替换s1中对应的元素,注意s1中的元素在s2中当有多个位置(a1,a2,a3……)时,要降序排列(a1>a

2015-04-14 00:04:50 4407 1

原创 求最大连续和

以后把看到的算法还是都写下来吧Orz。一个长度为n的整数序列,A1,A2,……,An,求最大的连续和。最容易想到的是每次计算i–j的连续和,并维护最大值。不过时间复杂度为O(n^3)。 采取预先记录前i项和的方法可以优化到O(n): #include<cstdio>const int maxn = 100005;int a[maxn], s[maxn];int main(){ int

2015-04-12 00:28:34 407

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除