以深度优先方式系统搜索问题解的算法称为回溯法。在回溯法中,解空间树主要分为了四种子集树、排列树、n叉树和不确定树。 在《算法设计与分析课本》中介绍了11个回溯法的问题样例,这里根据解空间树的类型做一个分类。 子集树 装载问题 符号三角形问题 0-1背包问题 最大团问题 算法模板: void back ...
分类:
编程语言 时间:
2019-12-09 21:13:28
阅读次数:
182
宽度优先搜索,层序遍历各节点,并记录各节点所在层,时间复杂度 O(n)。 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode ...
分类:
其他好文 时间:
2019-11-28 23:06:15
阅读次数:
119
什么是回溯法? S: 回溯法官网概念是一个类似枚举搜素尝试的过程,是一种选优搜索树,按照某个条件来向前搜索,如果满足条件的时候,就“回溯”,返回到树的上一层,重新试探其他的结果,直到遍历完所有的解空间。个人理解就是该问题的解可以构建一棵解空间树,该题就可以使用回溯法来解决,下面我们使用了N皇后这个经 ...
分类:
编程语言 时间:
2019-11-20 23:27:54
阅读次数:
79
BFS 广搜算法 讲一下图的遍历,广搜。 广搜是图的遍历的一种,它能够在图中的两的点之间找到一条最短的一条路径。但是如果仅使用广搜,搜索的规模会与点的数量以及边的数量有关。当规模很大的时候,广搜不是一种很好的解决方案。 举个例子,这是图的形式 然后便是其邻接矩阵的形式: ![photo2][phot ...
分类:
其他好文 时间:
2019-11-17 12:46:41
阅读次数:
57
封锁阳光大学 标签: 这题是真的难想……知道是二分图染色就明白了,~~虽然之前没学好~~。 题面表面说是 一张 图,实际上……嗯,很多连通子图。 思路 建图$\large \Rightarrow$枚举点$\large \Rightarrow$广搜染色$\large \Rightarrow$判定合法不 ...
分类:
其他好文 时间:
2019-11-11 15:32:34
阅读次数:
104
广搜求最少转机 struct node { int x; ///城市编号 int s; }q[maxn]; void bfs() { head=tail=1; q[tail].x=1; q[tail++].s=0; vis[start]=1; int cur,flag=0; while(head<t ...
分类:
其他好文 时间:
2019-11-03 18:30:48
阅读次数:
78
算法:广搜 解题思路: 因为要求最少的变换次数,所以很自然的想到要用广搜。广搜的初始状态为:10L的瓶子装满,其他的瓶子为空,接着只需要进行普通广搜即可。注意:因为有三个瓶子,故一共有6种移动状态: 1:从10L的瓶子向7L的瓶子中倒: 2:从7L的瓶子向3L的瓶子中倒: 3:从10L的瓶子向3L的 ...
分类:
其他好文 时间:
2019-10-26 10:45:38
阅读次数:
112
"原题链" "提交情况" 解题思路: 广搜。首先读入,然后特判是不是不需要变换就直接是最后结果(有一个点)。接着入队当前状态,所需步数为$0$。然后就是普通广搜的过程。分为$4$个方向。每次进行扩展时,都现将表示当前状态的9位数变为一个3×3的矩阵,然后扩展,并判断是否合法。如果合法,则又将$3×3 ...
分类:
其他好文 时间:
2019-10-26 10:20:23
阅读次数:
90
迭代深搜简单来说就是限制深度的深搜,这样就可以避免像广搜一样占用大量空间,又可以像广搜找到最佳的路径。 两道例题 1. "埃及分数" cpp include include include using namespace std; const int N = 10; typedef long lon ...
分类:
其他好文 时间:
2019-10-20 13:30:27
阅读次数:
103
树与图的遍历 深度优先搜索 剪枝 迭代加深 广度优先搜索 广搜变形 A* IDA* 总结与练习 ...
分类:
其他好文 时间:
2019-10-10 12:56:27
阅读次数:
57