摘要: 分解质因数 可用试除法,判断质数是不是它的因子以及有多少个该因子即可; 阅读全文
posted @ 2020-02-02 15:31 StungYep 阅读(141) 评论(0) 推荐(0)
摘要: 记忆化搜索 先说结论:什么是记忆化搜索? 1.不依赖任何 外部变量 。 2.答案一返回值的形式存在,而不能以参数的形式存在。 3.对于同一组参数,dfs的返回值是相同的,因为第一次都已经记录过。 记忆化算法在求解的时候还是按着自顶向下的顺序,但是每求解一个状态,就将它的解保存下来,以后再次遇到这个状 阅读全文
posted @ 2020-02-02 15:29 StungYep 阅读(1191) 评论(0) 推荐(0)
摘要: BFS(广度优先搜索) 最简单的搜索包含 DFS 和 BFS,他们分别有着下面不同的用途和区别: 区别于用途: 1.BFS是用来搜索最短径路的解是比较合适的,比如求最少步数的解,最少交换次数的解,因为BFS搜索过程中遇到的解一定是离根最近的,所以遇到一个解,一定就是最优解,此时搜索算法可以终止。这个 阅读全文
posted @ 2020-02-02 15:28 StungYep 阅读(748) 评论(0) 推荐(0)
摘要: DFS(深度优先搜索) 最简单的搜索包含 DFS 和 BFS,他们分别有着下面不同的用途和区别: 区别于用途: 1.BFS是用来搜索最短径路的解是比较合适的,比如求最少步数的解,最少交换次数的解,因为BFS搜索过程中遇到的解一定是离根最近的,所以遇到一个解,一定就是最优解,此时搜索算法可以终止。这个 阅读全文
posted @ 2020-02-02 15:26 StungYep 阅读(680) 评论(0) 推荐(0)
摘要: A 算法 A ( A star )算法,又称启发式搜索算法,与之相对的,dfs与bfs都成为盲目型搜索;即为带有估价函数的优先队列BFS称为A 算法。 该算法的核心思想为设计一个估价函数,估价函数需要满足下面几个准则: 1:设当前状态state到目标状态所需的估计值为$f(state)$。 2:在未 阅读全文
posted @ 2020-02-02 15:24 StungYep 阅读(480) 评论(0) 推荐(0)
摘要: Prim、Kruskal算法求解最小生成树 [TOC] 关于最小生成树有两个很重要的算法:Prime(普利姆)算法和Kruskal(克鲁斯卡尔)算法,下面是这两个算法的代码上的基本实现: Prime算法 该算法利用了最小生成树的MST性质,该算法很好的运用了贪心算法,其基本思想是随机选取一个结点,找 阅读全文
posted @ 2020-02-02 15:10 StungYep 阅读(203) 评论(0) 推荐(0)
摘要: 最近公共祖先 [TOC] 定义:给定一颗有根树,若结点 z 既是 x 的祖先,也是 y 的祖先,则称 z 是 x,y 的公共祖先。 在 x,y 所有的公共祖先中,深度最大的一个称为 x,y 的最近公共祖先,简称$LCA(x,y)$。 求解最近公共祖先一般有三种解法:向上标记法,树上倍增法和 Tarj 阅读全文
posted @ 2020-02-02 15:05 StungYep 阅读(490) 评论(0) 推荐(0)
摘要: k短路算法 求解k短路用到了A 算法,A ( A star )算法,又称启发式搜索算法,与之相对的,dfs与bfs都成为盲目型搜索;即为带有估价函数的优先队列BFS称为A 算法。 该算法的核心思想为设计一个估价函数,估价函数需要满足下面几个准则: 1:设当前状态state到目标状态所需的估计值为$f 阅读全文
posted @ 2020-02-02 15:01 StungYep 阅读(354) 评论(0) 推荐(0)
摘要: 1.次短路问题 次短路问题和最短路问题类似,我们可以想到次短路由什么转移而来?对于当前一个点,其次短路只可能由两种情况转移而来: c++ include using namespace std; const int inf=0x3f3f3f3f; const int maxn=1e5+10; int 阅读全文
posted @ 2020-02-02 14:59 StungYep 阅读(247) 评论(0) 推荐(0)
摘要: 拓扑排序 定义:拓扑排序是指在 有向无环图 中,将所有的结点进行排序,最终得出的序列称为拓扑序。 先来看一个模板代码: c++ include include include include using namespace std; const int maxn=210; int od[maxn], 阅读全文
posted @ 2020-02-02 14:57 StungYep 阅读(126) 评论(0) 推荐(0)