上一页 1 ··· 4 5 6 7 8

2016年4月29日

最长不下降子序列的O(n^2)算法和O(nlogn)算法

摘要: 一、简单的O(n^2)的算法 很容易想到用动态规划做。设lis[]用于保存第1~i元素元素中最长不下降序列的长度,则lis[i]=max(lis[j])+1,且num[i]>num[j],i>j。然后在lis[]中找到最大的一个值,时间复杂度是O(n^2)。 代码实现: int Longest_In 阅读全文

posted @ 2016-04-29 16:42 比特飞流 阅读(279) 评论(0) 推荐(0) 编辑

子序列相关问题

摘要: ①最长上升(下降)子序列/最长不下降(上升)子序列、(O(nlog2n)算法)(导弹防御 usaco 4.3.1) ②最长先上升后下降子序列 (合唱队形) ③最长上升下降相间子序列(花匠) ④最大连续子序列和 O(n) ⑤子序列的和为固定值 O(n2) (usaco 平分子集) ⑥最大元素不相邻子序 阅读全文

posted @ 2016-04-29 16:29 比特飞流 阅读(228) 评论(0) 推荐(0) 编辑

2016年4月28日

近期计划

摘要: 背包(0/1背包,完全背包,多重背包,分组背包,简单依赖背包,复杂依赖背包转化为树形dp) LIS 最长单调递增子序列 LCS 最长公共子序列 区间dp 环形dp 树形dp 状态压缩dp 单调dp 求LCS(最长公共子序列)的长度的nlogn算法可以通过转换为求一个数列的LIS。与动归的n^2复杂度 阅读全文

posted @ 2016-04-28 16:19 比特飞流 阅读(107) 评论(0) 推荐(0) 编辑

2016年4月26日

(转)Tarjan应用:求割点/桥/缩点/强连通分量/双连通分量/LCA(最近公共祖先)

摘要: 基本概念: 1.割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割点。 2.割点集合:在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。 3.点连通度:最小割点集合中的顶点数。 4.割边(桥):删掉它之后 阅读全文

posted @ 2016-04-26 19:22 比特飞流 阅读(171) 评论(0) 推荐(0) 编辑

依赖背包

摘要: 依赖背包转化为树形dp。 例如若 阅读全文

posted @ 2016-04-26 08:43 比特飞流 阅读(96) 评论(0) 推荐(0) 编辑

2016年4月14日

强连通分量

摘要: 有向图强连通分量:在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量。 Tarjan算法是基于对图深度优先搜索的算法,每 阅读全文

posted @ 2016-04-14 10:28 比特飞流 阅读(325) 评论(0) 推荐(0) 编辑

上一页 1 ··· 4 5 6 7 8
< 2025年4月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10

导航

统计

点击右上角即可分享
微信分享提示