本文针对迷宫问题,探讨解决思路并给出实现代码。在本文中,采用的图的深度优先搜索和广度优先搜索两种方法分别对迷宫的路径进行了求解。
首先来看迷宫问题的描述,可以参考此处,简而言之就是,通过一个二维数组(int型)来表示迷宫,迷宫中0表示可行,1表示不可行。在本文的实现中,可以输入给定迷宫,定义迷宫入....
分类:
其他好文 时间:
2014-05-09 06:38:13
阅读次数:
608
经典迷宫问题。。。STL~queue+BFS实现,给正在学习使用queue和BFS的童鞋提供一个比较好理解的模板~=w=~...
分类:
其他好文 时间:
2014-05-09 06:05:13
阅读次数:
353
迷宫问题可以看做是在“图”中求解:已知的两个节点是否连通,以及求某个连通的通路。可以通过图的深度优先遍历求解。
import java.util.HashSet;
import java.util.Set;
class Pos{
public int i;
public int j;
public Pos(int i,int j){
this.i=i;
this.j=j;
}...
分类:
其他好文 时间:
2014-05-09 01:52:20
阅读次数:
312
很简单的一道DP,看到空间限制是O(N)的,不要习惯性的以为是要保存每一行的最小值,不难想到是要保存一行当中各个数为路径终点时的和的大小。当算到最后一行时,就是从顶部到底部以这个底部位置为终点的最短路径和,找一个最小的就可以了。
实现的时候要注意个问题,因为计算时要用到上一行的数据,所以为了避免数据被覆盖,应该从后往前算,这个技巧用的很多,相信大家都很熟悉。
ac代码如下:
class So...
分类:
其他好文 时间:
2014-05-08 04:01:44
阅读次数:
282
最短路径--负权环 (bellman_ford的应用)
分类:
其他好文 时间:
2014-05-07 20:17:21
阅读次数:
391
题意:首先会输入个 数l,r,c
接下来会如数l个r*c的矩阵,其实点为S,结束点为E,每个点都可以向六个方向走,东,南,西,北,上,下,求从起始点到结束点的最短路径。Sample Input3
4 5S.....###..##..###.#############.####...#########...
分类:
其他好文 时间:
2014-05-07 10:28:50
阅读次数:
376
对于边比较稠密的图,可以采用邻接矩阵(以顶点为中心)的方式表示,而边比较稀疏时,采用邻接表的结构更合适。两种都不能直观表达哪两个点相连或者最短路径是什么。
深度优先遍历类似于树的先根序遍历。与树不同的是,它需要对已经访问过的节点添加标记以免被重复遍历。
public class Depth {
/**
* 对k号节点深度遍历
* @param a
* @param col...
分类:
其他好文 时间:
2014-05-07 08:02:01
阅读次数:
293
Toll! Revisited
大致题意:有两种节点,一种是大写字母,一种是小写字母。首先输入m条边,当经过小写字母时需要付一单位的过路费,当经过大写字母时,要付当前财务的1/20做过路费。问在起点最少需要带多少物品使到达终点时还有k个物品。当有多条符合条件的路径时输出字典序最小的一个。
思路:已知终点的权值,那么可以从终点向前推。求终点到起点的最短路径,然后按字典序打印路径。
比较...
分类:
Web程序 时间:
2014-05-07 06:05:27
阅读次数:
374
http://acm.hdu.edu.cn/showproblem.php?pid=1688这道题就是求最短路路径和次短路路径的条数。用一个二维数组记录每一个节点距离起始点的最短距离和次短距离,再开一个二维数组记录路径数更新状态时:1)新值小于最短路径长:更新最短路径长,计数;次短路径长,计数2)新...
分类:
其他好文 时间:
2014-05-07 02:02:11
阅读次数:
371