学习总结
文章平均质量分 57
miss_minor
坚持,请你坚持
展开
-
区间选点+区间覆盖
区间选点+区间覆盖区间选点问题(选择最少的点,使得每个区间都至少有k个点)将这些区间[l,r]先按照r从小到大排序,再按照l从大到小排序。选点尽量选择靠近右边界的点。然后按照这个排序后的区间进行遍历,用一个变量来存放遍历过程中上个区间的右边界,然后碰到一个新的区间的时候需要分两种情况讨论:1、这个区间和上个区间有相交的部分,那么就需要判断一下上次选择的点有多少在这个区间内,这些原创 2014-10-31 01:14:14 · 2568 阅读 · 0 评论 -
LIS(最长递增子序列)和LCS(最长公共子序列)的总结
LIS(最长递增子序列)和LCS(最长公共子序列)的总结最长公共子序列(LCS):O(n^2)两个for循环让两个字符串按位的匹配:i in range(1, len1) j in range(1, len2)s1[i - 1] == s2[j - 1], dp[i][j] = dp[i - 1][j -1] + 1;s1[i - 1] != s2[j - 1], dp原创 2014-10-29 16:08:54 · 1713 阅读 · 0 评论 -
最大连续和的方法总结
最大连续和的方法总结第一种:暴力。复杂度O(n^3)。用两个循环枚举起点和终点,然后中间再放一个循环,计算这个起点到终点的连续和。伪代码: max = -INF; s[maxn]; for i in range(1, len): for(j in range(i, len)): sum = 0;原创 2014-10-29 10:48:58 · 1701 阅读 · 0 评论 -
kruskal求得的生成树是最小生成树的证明
kruskal求得的生成树是最小生成树的证明给一带权连通的树一定会有至少一棵生成树,那么这些生成树中间必然会会存在至少一棵最小生成树。 假设T是用kruskal求出来的最小生成树,而U是这个图的最小生成树,如果U == T,那么证明结束。 然而如果T != U,那么至少存在一条边在T中,不在U中。那么我们希望证明T和U中所有边的权值之和是相等的。假设存在k条边存在T中不存在U中原创 2015-05-30 21:24:35 · 2017 阅读 · 0 评论