算法细谈
文章平均质量分 66
本专栏主要是研究算法问题,例如:分治,动态规划,回溯法,贪心算法等等。
水田如雅
不生产代码,只是代码的搬运工
展开
-
LC指北-持续更新中
先导篇-数据结构基础数据结构部分知识框架:数据结构数据结构内容总结:数据结构内容详情进阶篇动态规划01背包问题:01背包完全背包问题:完全背包多重背包问题:多重背包回溯算法贪心算法并查集并查集基础知识:并查集基础...原创 2021-09-09 21:42:42 · 163 阅读 · 0 评论 -
并查集模板1-路径压缩和按秩合并
并查集的概念引人并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中。其特点是看似并不复杂,但数据量极大,若用正常的数据结构来描述的话,往往在空间上过大,计算机无法承受;即使在空间上勉强通过,运行的时间复杂度也极高,根本就不可能在比赛规定的运行时间(1~3秒)内计算出试题需要的结果,只能用并查集来描述。并查集是一种树型的数据结构,原创 2021-03-27 14:04:44 · 319 阅读 · 0 评论 -
分治法——循环赛日程安排问题
问题描述:设有n(2^k)位选手参加网球循环赛,循环赛共进行n-1天,每位选手要与其他n-1位选手比赛一场,且每位选手每天只能赛一场,试安排比赛。举例说明:1,当n为偶数时,循环赛一共要进行n-1天;比如,有运动员:周董,信哥,蔡依林,小七,一共4个人,可以如下安排: 运动员 第一天 ...原创 2014-11-05 16:51:13 · 6109 阅读 · 9 评论 -
贪心法——活动选择问题和背包问题
今天上午听了米老师讲的算法,感觉收获很多,对于算法更加有信心了。首先,先来宏观看一下: 这三种算法总的来说,刚开始看的时候不知道怎么下手,但是看多了也会有那么一点儿感觉。分治法是这三种算法里面都有的思想,动态规划和贪心都是将问题分解成子问题求解,但动态规划里面的子问题都带有联系,而贪心算法里面的子问题都...原创 2014-10-23 20:19:32 · 2771 阅读 · 28 评论 -
回溯法——求解N皇后问题
问题描述 八皇后问题是十九世纪著名数学家高斯于1850年提出的。问题是:在8*8的棋盘上摆放8个皇后,使其不能互相攻击,即任意的两个皇后不能处在同意行,同一列,或同意斜线上。可以把八皇后问题拓展为n皇后问题,即在n*n的棋盘上摆放n个皇后,使其任意两个皇后都不能处于同一行、同一列或同一斜线上。问题分析 我们以最简单的4皇后问题分析,显然,...原创 2014-10-25 21:48:39 · 7539 阅读 · 17 评论 -
动态规划法——求解0-1背包问题
问题描述0-1背包问题与背包问题(贪心法——背包问题)最大的不同就是背包问题的子问题彼此之间没有联系,所以只要找出解决方法,然后用贪心算法,取得局部最优解就ok了,但是0-1背包问题更复杂,因为物品不可再分,导致了子问题之间是有联系的。问题分析 1,刻画背包问题最优解的结构...原创 2014-10-25 22:01:27 · 3236 阅读 · 17 评论 -
动态规划法——最长公共子序列问题
这个题当初始终看不下去的原因就是当初误解了什么叫最长公共子序列,还一度以为这个题有问题,其实如果明白了什么叫最长公共子序列,也就解决了一半的问题。什么是最长公共子序列? 什么是最长公共子序列呢?举个简单的例子吧,一个数列S,若分别是两个或多个已知序列的子序列,且是所有符合条件序列中最长的,则S称为已知序列的最长公共子序列。...原创 2014-10-27 21:52:36 · 2400 阅读 · 18 评论 -
回溯法——求解0-1背包问题
以前研究过一个简单的N皇后问题,对回溯法也有了个模糊的认识,大致理解就是:先一直做某件事,当完成某个条件时或者是触犯某个条件时,再返回到最近的一个类似还原点的地方。 在用回溯法求解0-1背包问题的时候,主要遇到三个相对难解决的问题:1,什么是界限函数;2,什么时候用它;3,回溯到哪儿。 什么是界限函数?...原创 2014-10-28 08:45:34 · 6794 阅读 · 34 评论