迭代加深dfs 每次控制序列的长度,依次加深搜索 有几个剪枝: 优化搜索顺序,从大往下枚举i, j这样能够让序列中的数尽快逼近n 对于不同i,j和可能是相等的,在枚举的时候用过的数肯定不会再被填上所以可以去重(记得回溯) include include include define INF 0x3f ...
分类:
其他好文 时间:
2019-03-13 16:50:18
阅读次数:
172
最小生成树(MST) 定义 首先是一棵树(废话 其次没有回路(废话 包含全部顶点和V-1条边 边的权重和最小!!!!! 所以如果是单棵最小生成树,至少说明图是连通的。不然就是森林。 生成思路 既然是根据图生成树,那么至少要有遍历图。那么,便要从一个源点出发,来一场愉快的深搜或广搜。 深搜生成就叫DF ...
分类:
编程语言 时间:
2019-03-05 21:23:59
阅读次数:
223
输入样例: 13 13 3 3##############GG.GGG#GGG.####.#G#G#G#G##.......#..G##G#.###.#G#G##GG.GGG.#.GG##G#.#G#.#.#.###G...G.....##G#.#G###.#G##...G#GGG.GG##G#.# ...
分类:
其他好文 时间:
2019-02-24 15:07:45
阅读次数:
183
问题描述: 小哈去玩迷宫,结果迷路了,小哼去救小哈。迷宫由n行m列的单元格组成(n和m都小于等于50),每个单元格要么是空地,要么是障碍物。 问题:帮小哼找到一条从迷宫的起点通往小哈所在位置的最短路径。(注意:障碍物不能走,小哼也不能走出迷宫外,0表示空地,1表示障碍物) 输入: 5 4 0 0 1 ...
分类:
其他好文 时间:
2019-02-22 12:00:31
阅读次数:
163
这题深搜广搜都可以做,深搜的做法就是把每个由1 和 0 组成的数字拓展10倍以及拓展10倍+1,然后压入队列。 这样可以走过所有由10组成的数字,且两个方向平行发展(*10 +0和+1)。 bfs dfs的话,我们就要考虑这个数是不是会超范围,long long是64位的,然后有符号类型的最大十进制 ...
分类:
其他好文 时间:
2019-02-20 13:07:55
阅读次数:
188
这题是深搜。 搜索边界就是当我们走出棋盘并且棋子数目不为0,我们就返回。 另一个边界就是,当棋子数目为0,无论在哪,我们都让方法数加一,然后返回。 搜索的方向就是按行搜索,对列考察,如果是棋盘且此列没放过棋子,那我们就搜索这个点,此列标记为1。 然后对这个点搜索之后,我们就要让这个深搜回溯,清空标记 ...
分类:
其他好文 时间:
2019-02-20 11:17:27
阅读次数:
144
还不太会做这类题,总之感觉有点难啊。 用深搜代替打表求出一行所有的可行状态,注意要进行剪枝 这是自己理解的代码,但是tle了 ...
分类:
其他好文 时间:
2019-02-12 13:20:27
阅读次数:
169
``` cpp include include include using namespace std; typedef long long ll; ll depth,a,b,flag,ans[100005],nans[100005]; inline ll gcd(ll a,ll b){ retur ...
分类:
其他好文 时间:
2019-02-07 19:17:07
阅读次数:
230
"【题面】" 题目描述: 输入输出格式: 输入格式: 第一行有一个正整数T(T 输出格式: 对于每组数据都输出一行。如果能在15步以内(包括15步)到达目标状态,则输出步数,否则输出-1。 输入输出样例: Input: Output: 说明: 【题解】: _P.S.:这题并不是此时完成的,但思路仍是 ...
分类:
其他好文 时间:
2019-02-04 16:50:42
阅读次数:
156
嗯... BFS是图的搜索算法之一,与深度优先搜索不同的是:广度优先搜索会先搜索到与起始点距离较近的点,而深搜却是沿着一个分支递归到最后.... 与深搜的对比: 深搜用栈(stack)来实现: 1.把起始顶点压入栈中 2.每次从栈顶取出一个顶点,搜索所有它的未访问相邻顶点,把这些顶点压入栈中 3.重 ...
分类:
其他好文 时间:
2019-01-31 23:00:24
阅读次数:
210