最短用BFS即可.关于左手走和右手走也很容易理解,走的顺序是左上右下. 值得注意的是,从起点到终点的右手走法和从终点到起点的左手走法步数是一样. 所以写一个左手走法就好了.贴代码,0MS #include <cstdio> #include <cstring> #include <deque> using namespace std; ][]; ][]={ {,-},{-,},{,},{,} }; bool flag; void DFS(int x,int y,int…
POJ 3083 -- Children of the Candy Corn(DFS+BFS) 题意: 给定一个迷宫,S是起点,E是终点,#是墙不可走,.可以走 1)先输出左转优先时,从S到E的步数 2)再输出右转优先时,从S到E的步数 3)最后输出S到E的最短步数 解题思路: 前两问DFS,转向只要控制一下旋转方向就可以 首先设置前进方向对应的数字 向上——N——0 向右——E——1 向下——S——2 向左——W——3 比如说右转优先,即为向右,向前,向左,向后,即逆时针方向for(int i…
点击打开链接 Children of the Candy Corn Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8288   Accepted: 3635 Description The cornfield maze is a popular Halloween treat. Visitors are shown the entrance and must wander through the maze facing…
  Children of the Candy Corn Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8102   Accepted: 3540 Description The cornfield maze is a popular Halloween treat. Visitors are shown the entrance and must wander through the maze facing zombi…
做了1天,总是各种错误,很无语 最后还是参考大神的方法 题目:http://poj.org/problem?id=3083 题意:从s到e找分别按照左侧优先和右侧优先的最短路径,和实际的最短路径 DFS找左右侧 的最短路径 #include <iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<stack> #include<queue> #i…
http://poj.org/problem?id=3083 Description The cornfield maze is a popular Halloween treat. Visitors are shown the entrance and must wander through the maze facing zombies, chainsaw-wielding psychopaths, hippies, and other terrors on their quest to f…
题目链接:http://poj.org/problem?id=3083 题意: 这里有一个w * h的迷宫,给你入口和出口,让你分别求以下三种情况时,到达出口的步数(总步数包括入口和出口): 第一种:当你需要选择下一个位置时,总是需要这么考虑:如果当前的左方能走,那么就走左方;否则考虑前方是否能走,如果能走,那么就选前方;否则考虑右方是否能走,如果可以,就走右方.如果不能就返回上一个位置,即当前位置的后方.总结下来选择道路的优先顺序为(以当前所处方位为准) 左 -> 上(前) -> 右 -&g…
题目地址:http://poj.org/problem?id=3083 Sample Input 2 8 8 ######## #......# #.####.# #.####.# #.####.# #.####.# #...#..# #S#E#### 9 5 ######### #.#.#.#.# S.......E #.#.#.#.# ######### Sample Output 37 5 5 17 17 9题目分析:T组数据,每组都会有一个起点S,一个终点E. 分别输出:左边优先搜索到E…
题目 靠墙走用 模拟,我写的是靠左走,因为靠右走相当于 靠左走从终点走到起点. 最短路径 用bfs. #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> #include<queue> using namespace std; #define MAXN 110 char map[MAXN]…
POJ-3083 题意: 给一个h*w的地图. '#'表示墙: '.'表示空地: 'S'表示起点: 'E'表示终点: 1)在地图中仅有一个'S'和一个'E',他们为位于地图的边墙,不在墙角: 2)地图的四周是墙,还有'S'和'E': 3)'S'和'E'之间至少有一个'#'将他们分开: 4)'S'和'E'是可以到达的: 按顺序依次打印出从起点开始靠左行走,靠右行走,最短路径的的数量(包括'S'和'E'),仅允许水平或垂直方向. 思路: 这道题最麻烦的就是靠左,靠右,其实也只要弄懂靠左,靠右也就出来…