在你的位置放置一个炸弹,放在哪点能杀最多的敌人,你的位置不能和敌人相同
输入
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#.#G#...
分类:
其他好文 时间:
2016-05-07 11:09:50
阅读次数:
89
1.问题简介给定一个迷宫,指明起点和终点,找出从起点出发到终点的有效可行路径,就是迷宫问题(maze problem)。迷宫可以以二维数组来存储表示。0表示通路,1表示障碍。注意这里规定移动可以从上、下、左、右四方方向移动。坐标以行和列表示,均从0开始,给定起点(0,0)和终点(4,4),迷宫表示如下:int maze[5][5]={
{0,0,0,0,0},
{0,1,0,1,0}...
分类:
其他好文 时间:
2016-05-03 18:36:15
阅读次数:
282
问题描述: 给定如图所示的无向连通图,假定图中所有边的权值都为1,显然,从源点A到终点T的虽短路径有多条,求不同的最短路径的数目。 权值相同的最短路径问题,则但愿点Dijkstra算法退化成广度优先搜索,假定起点为0,终点为N。 用动态规划的思想: 使用两个辅助数组: 步数:step[0...N], ...
分类:
其他好文 时间:
2016-04-30 14:16:07
阅读次数:
132
搜索分为深度优先搜索和广度优先搜索 深度搜索: 1.在当前状态下选择一种可行的情况,转入新的状态; 2.重复1直到找到答案或者确定没有解; 3.若是确定没有解(或者找另外一组解),则返回上一步,选择其他情况,直到所有情况都尝试一遍 经典问题: 迷宫问题:设定一个方向数组,表示能够走的四个方向 ?利用 ...
分类:
其他好文 时间:
2016-04-24 15:53:09
阅读次数:
157
有两种常用的方法可用来搜索图:即深度优先搜索和广度优先搜索。它们最终都会到达所有连通的顶点。深度优先搜索通过栈来实现,而广度优先搜索通过队列来实现。 深度优先搜索: 为了实现深度优先搜索,首先选择一个起始顶点并需要遵守三个规则:(1) 如果可能,访问一个邻接的未访问顶点,标记它,并把它放入栈中。(2 ...
分类:
其他好文 时间:
2016-04-21 11:34:57
阅读次数:
140
本文有以下内容:广度优先搜索的描述广度优先搜索的优点3.广度优先搜索的代码模版描述:广度优先搜索算法用于树的遍历。算法的描述概括如下:取得当前节点将当前节点入队列当队列不为空时,获得队头节点head,队头head出队列;判断队头的状态是否是待求状态是,则作相应处理;结束..
分类:
其他好文 时间:
2016-04-17 00:57:25
阅读次数:
169
本文取自《数据结构与算法》(C语言版)(第三版),出版社是清华大学出版社。 1.图的深度优先搜索算法: 图的深度优先搜索算法的基本思想是:从图G的某个顶点V0出发,访问V0,然后选择一个与V0相邻且未被访问过的顶点Vi访问,再从Vi出发选择一个与Vi相邻且未被访问的顶点Vj进行访问,依此下去,直到当 ...
分类:
编程语言 时间:
2016-04-11 15:47:29
阅读次数:
250
///POJ 3278 Catch That Cow #include<stdio.h>#include<string.h>#include<iostream>#include<queue>using namespace std; int step[100010];int vis[100010];q ...
分类:
其他好文 时间:
2016-04-03 14:26:57
阅读次数:
124
解题思路: 这是紫书上的一道题,一开始笔者按照书上的思路采用状态空间搜索,想了很多办法优化可是仍然超时,时间消耗大的原因是主要是: 1)状态转移代价很大,一次需要向八个方向寻找; 2)哈希表更新频繁; 3)采用广度优先搜索结点数越来越多,耗时过大; 经过简单计算,最长大概10次左右的变换就能出解,于 ...
分类:
其他好文 时间:
2016-04-01 06:28:18
阅读次数:
198
首先是大方向上面的对比: 两者都能用于图的遍历搜索,很多时候两者都能得到最终的结果。多说时候要最快的得到第一个解,可能dfs要快一些。 代码上面的对比: dfs利用递归实现,bfs多用循环实现,差别不大 但是在于一点就是,dfs用完这个点之后要还回去,而bfs不用,因为它是慢慢扩散的。 最后也是最重
分类:
其他好文 时间:
2016-03-17 01:53:15
阅读次数:
179