蓝桥T291(BFS + 输出路径)
接下来n行,每行m个数,数之间没有间隔,为0或1中的一个。0表示这个格子可以通过,1表示不可以。假设你现在已经在迷宫坐标(1,1)的地方,即左上角,迷宫的出口在(n,m)。每次移动时只能向上下左右4个方向移动到另外一个可以通过的格子里,每次移动算一步。数据保证(1,1),(n,m)可以通过。
第二行K个字符,每个字符∈{U,D,L,R},分别表示上下左右。如果有多条长度相同的最短路径,选择在此表示方法下字典序最小的一个。
3 3
001
100
110
Input Sample 2:
3 3
000
000
000
4
RDRD
Output Sample 2:
4
DDRR
有50%的数据满足:1<=n,m<=50
有100%的数据满足:1<=n,m<=500。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#include <algorithm>
using namespace std;
const int INF = 0x3f3f3f3f;
char direct[] = {'D','L','R','U'},path[];
int n,m,dis[][],cnt;
int gx[] = {,,,-};
int gy[] = {,-,,};
char g[][];
struct point
{
int x,y;
};
void bfs(int x,int y)
{
queue<point> q;
point temp,temp2;
temp.x = x;
temp.y = y;
q.push(temp);
while(q.size())
{
temp2 = q.front();
q.pop();
if(temp2.x == n && temp2.y == m)
{
return;
}
for(int i = ; i < ; i++)
{
int fx = gx[i] + temp2.x;
int fy = gy[i] + temp2.y;
if(fx >= && fx <= n && fy >= && fy <= m && g[fx][fy] == '' && dis[fx][fy] > dis[temp2.x][temp2.y] + )
{
dis[fx][fy] = dis[temp2.x][temp2.y] + ;
temp.x = fx;
temp.y = fy;
q.push(temp);
}
}
}
}
int dfs(int x,int y,int ans)
{
if(x == n && y == m)
{
cnt = ans;
return true;
}
for(int i = ; i < ; i++)
{
int fx = x + gx[i];
int fy = y + gy[i];
if(fx >= && fx <= n && fy <= m && fy >= && dis[x][y] + == dis[fx][fy])
{
path[ans] = direct[i];
if(dfs(fx,fy,ans + )) //不满足要回溯!
return true;
}
}
return false;
}
int main()
{
scanf("%d%d", &n, &m);
getchar();
for(int i = ; i <= n; i++)
{
for(int j = ; j <= m; j++)
{
scanf("%c", &g[i][j]);
}
getchar();
}
memset(dis, INF, sizeof(dis));
dis[][] = ;
cnt = ;
bfs(,);
dfs(,,);
printf("%d\n", dis[n][m]);
path[cnt] = '\0';
printf("%s\n", path);
return ;
}
蓝桥T291(BFS + 输出路径)的更多相关文章
- hdu 1026(BFS+输出路径) 我要和怪兽决斗
http://acm.hdu.edu.cn/showproblem.php?pid=1026 模拟一个人走迷宫,起点在(0,0)位置,遇到怪兽要和他决斗,决斗时间为那个格子的数字,就是走一个格子花费时 ...
- poj 3414 Pots(bfs+输出路径)
Description You are given two pots, having the volume of A and B liters respectively. The following ...
- bfs输出路径 && 最短路(迪杰斯特拉)输出路径
问题描述 解决方法 1.像第一个问题那就是最短路问题(我代码采用迪杰斯特拉算法)实现 2.换乘次数最少,那就用bfs广搜来寻找答案.但是我的代码不能保证这个最少换乘是最短路程 代码 1 #includ ...
- 地下迷宫(bfs输出路径)
题解:开一个pre数组用编号代替当前位置,编号用结构题另存,其实也可以i*m+j来代替,我写的有点麻烦了; 代码: #include <iostream> #include <cst ...
- POJ 3414 Pot (输出路径)【BFS】
<题目链接> 题目大意: 有两个容量的空杯子,能够对这两个空杯子进行三种操作: 分别是fill(a),装满a杯子: drop(a),倒空a杯子: pour(a,b),将a杯子中的水倒入b杯 ...
- 迷宫问题---poj3984(bfs,输出路径问题)
题目链接 主要就是输出路径问题: pre[x][y]表示到达(x,y)是由点(pre[x][y].x, pre[x][y].y)而来: #include<stdio.h> #includ ...
- Pots--poj(bfs,输出路径)
http://poj.org/problem?id=3414 题意: 给你两个容量为a,b的杯子:有3个操作: 1:FILL(i):把第i个杯子从水库中装满: 2:DROP(i):把第i个杯子清空: ...
- UVA-816.Abbott's Tevenge (BFS + 打印路径)
本题大意:给定一个迷宫,让你判断是否能从给定的起点到达给定的终点,这里起点需要输入起始方向,迷宫的每个顶点也都有行走限制,每个顶点都有特殊的转向约束...具体看题目便知... 本题思路:保存起点和终点 ...
- hdu 1026 bfs+记录路径
题意:从0,0点出发到n-1,m-1点,路上的数字代表要在这个点额外待多少秒,求最短的路 递归输出路径即可 #include<cstdio> #include<iostream> ...
随机推荐
- 一道看似简单的sql需求却难倒各路高手 - 你也来挑战下吗?
转自:http://www.cnblogs.com/keguangqiang/p/4535046.html 听说这题难住大批高手,你也来试下吧.ps:博问里的博友提出的. 原始数据 select * ...
- Css 常用属性
1. overflow:hidden和zoom:1 verflow:hidden;的作用 1. 隐藏溢出 :2.消除浮动 <style type="text/css"> ...
- php基础27:文件写入
<?php //1.打开一个文件 /* 第一个参数:打开的文件,第二个参数表明模式,w只写 如果打开的文件已经有了,那么删除这个文件,重新创建 如果没有,直接创建 fopen返回的是资源类型re ...
- 使用ajax跨域withCredentials的作用
默认情况下,跨源请求不提供凭据(cookie.HTTP认证及客户端SSL证明等).通过将withCredentials属性设置为true,可以指定某个请求应该发送凭据.如果服务器接收带凭据的请求,会用 ...
- Brief introduce to Iometer
<本人原创,纯粹为了练习英文博客的写作.转载请注明出处谢谢!非技术博客 http://shiyanch.lofter.com/ > *:first-child { margin-top: ...
- 【超详细教程】使用Windows Live Writer 2012和Office Word 2013 发布
去年就知道有这个功能,不过没去深究总结过,最近有写网络博客的欲望了,于是又重新拾起这玩意儿. 具体到底是用Windows Live Writer 2012还是用Word 2013,个人觉得看个人,因为 ...
- 20135202闫佳歆--week 7 Linux内核如何装载和启动一个可执行程序--实验及总结
week 7 实验:Linux内核如何装载和启动一个可执行程序 1.环境搭建: rm menu -rf git clone https://github.com/megnning/menu.git c ...
- 启动页面设置,icon图标设置
更多尺寸像素如何放置请看:http://chicun.jammy.cc/ 如何设置App的启动图,也就是Launch Image? 新建一个iosLaunchImage文件夹
- FPGA学习之基本结构
如何学习FPGA中提到第一步:学习.了解FPGA结构,FPGA到底是什么东西,芯片里面有什么,不要开始就拿个开发板照着别人的东西去编程.既然要开始学习FPGA,那么就应该从其基本结构开始.以下内容是我 ...
- 两个简单的Loading
置顶文章:<纯CSS打造银色MacBook Air(完整版)> 上一篇:<JavaScript并非"按值传递"> 作者主页:myvin 博主QQ:85139 ...