题意 给定一个载重量为M的背包,考虑n个物品,其中第i个物品的重量 wi ,价值vi (1≤i≤n),要求把物品装满背包,且使背包内的物品价值最大。有两类背包问题(根据物品是否可以分割),如果物品不可以分割,称为0-1背包问题(动态规划);如果物品可以分割,则称为背包问题(贪心算法)。 代码 ...
分类:
编程语言 时间:
2019-10-25 19:56:38
阅读次数:
101
生物信息学 Contig是reads拼成的连续的DNA片段,连续表达一个gene。通过双端测序的contig可确定contig之间的关系得到scaffold,Scaffold是reads拼成的有gap的DNA片段。理想情况下,一条染色体用同一个scaffold的表达。整个genome存在很多零碎片段 ...
分类:
编程语言 时间:
2019-10-23 13:22:54
阅读次数:
106
$Solution$ 当$n$在$100$左右时,直接$O(n^3)$区间$DP$ 当$n$在$40000$左右时,需要用贪心算法: 加西亚 瓦克斯算法 ($Garsia\ Wachs$) 这是大概的流程 这是关于$Garsia\ Wachs$算法的正确性证明: "传送门" 时间复杂度最坏为$O(n ...
分类:
其他好文 时间:
2019-10-23 09:32:56
阅读次数:
93
一、什么是模拟退火算法 1、爬山算法 在了解模拟退火算法之前,先来看一下爬山算法:爬山算法是一种贪心算法,该算法每次从当前的解空间中选取一个解作为最优解,直到达到一个局部最优解。假设函数f(x)的图像如下图:现在使用爬山算法来求f(x)的最大值,若C为当前最优解,则爬山算法搜索到A就会停止搜索,这会 ...
分类:
其他好文 时间:
2019-10-08 14:19:42
阅读次数:
71
P1242 新汉诺塔 此题的最后一个数据点不适用于贪心算法,所以每次将大的优先移到目标位置有很小的概率不是最优解,但是毕竟是最优解的概率还是很大的。所以用模(yi)拟(tong)退(luan)火(gao)就可以了,反正也是随机碰碰运气的。概率嘛~~~~,只要你的srand能过,那就能过啦。 ...
分类:
其他好文 时间:
2019-10-06 17:00:09
阅读次数:
86
贪心算法,更确切的说是一种解决题目的思想,简单来说是对于问题的特殊解,它可以通过某种特殊的规则,不断地选取最优的策略。 比如说,最简单的贪心问题: 使用最少的硬币数量来解决付账的问题(恰好完成数额, 不需要找零) 区间的调度问题(给你多个区间, 可能会有交叉现象, 你需要找所给你的实现当中找出不交叉 ...
分类:
编程语言 时间:
2019-10-05 20:06:58
阅读次数:
76
1 Dijkstra算法 1.1 算法基本信息 + 解决问题/提出背景 + 单源最短路径(在带权有向图中,求从某顶点到其余各顶点的最短路径) + 算法思想 + 贪心算法 + 按路径长度递增的次序,依次产生最短路径的算法 + 【适用范围】Dijkstra算法仅适用于【权重为正】的图模型中 + 时间复杂 ...
分类:
编程语言 时间:
2019-09-30 18:21:19
阅读次数:
129
马踏棋盘问题(骑士周游问题) 实际上是图的深度优先搜索(DFS)的应用。 如果使用回溯(就是深度优先搜索)来解决,假如马儿踏了53个点,如图:走到了第53个,坐标(1,0),发现已经走到尽头,没办法,那就只能回退了,查看其他的路径,就在棋盘上不停的回溯…… ,思路分析+代码实现 使用贪心算法(gre ...
分类:
其他好文 时间:
2019-09-30 14:38:19
阅读次数:
90
1 Floyd算法 1.1 Code 1.2 Output 2 参考文献 + 《数据结构(C语言版/ 严蔚敏 李冬梅 吴伟民 编)》 ...
分类:
编程语言 时间:
2019-09-30 14:21:15
阅读次数:
147
前言 在 图论 中,在寻路最短路径中除了 算法以外,还有 算法也是非常经典,然而两种算法还是 的,Floyd主要计算多源最短路径。 在单源正权值最短路径 ,我们会用 "Dijkstra算法" 来求最短路径,并且算法的思想很简单—— 贪心算法 :每次确定最短路径的一个点然后维护(更新)这个点周围点的距 ...
分类:
编程语言 时间:
2019-09-28 12:55:32
阅读次数:
98