POJ 3984 迷宫问题
来源:互联网 发布:淘宝卖家诈骗800 编辑:程序博客网 时间:2024/06/05 20:32
http://poj.org/problem?id=3984
迷宫问题
Time Limit: 1000MSMemory Limit: 65536KTotal Submissions: 9158Accepted: 5416
Description
定义一个二维数组:
它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。
int maze[5][5] = {
0, 1, 0, 0, 0,
0, 1, 0, 1, 0,
0, 0, 0, 0, 0,
0, 1, 1, 1, 0,
0, 0, 0, 1, 0,
};
它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。
Input
一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。
Output
左上角到右下角的最短路径,格式如样例所示。
Sample Input
0 1 0 0 00 1 0 1 00 0 0 0 00 1 1 1 00 0 0 1 0
Sample Output
(0, 0)(1, 0)(2, 0)(2, 1)(2, 2)(2, 3)(2, 4)(3, 4)(4, 4)
Source
BFS 记录路径
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<vector>
#include<cmath>
#include<stdlib.h>
#include<iomanip>
#include<list>
#include<deque>
#include<map>
#include <stdio.h>
#include <queue>
#include <stack>
#define maxn 10000+5
#define ull unsigned long long
#define ll long long
#define reP(i,n) for(i=1;i<=n;i++)
#define rep(i,n) for(i=0;i<n;i++)
#define cle(a) memset(a,0,sizeof(a))
#define mod 90001
#define PI 3.141592657
#define INF 1<<30
const ull inf = 1LL << 61;
const double eps=1e-5;
using namespace std;
struct node
{
int x,y;
};
bool cmp(int a,int b)
{
return a>b;
}
int mp[6][6];
int dir[4][2]={1,0,0,1,0,-1,-1,0};
queue<node>q;
node pre[30][30];
node p[30];
int vis[30][30];
void bfs()
{
cle(vis);
int k=0;
node u;
u.x=1,u.y=1;
vis[1][1]=1;
q.push(u);
while(!q.empty())
{
u=q.front(),q.pop();
if(u.x==5&&u.y==5)
{
int k=1;
while(1)
{
u=pre[u.x][u.y];
if(u.x==0&&u.y==0)break;
p[k++]=u;
}
//printf("(%d,%d)\n",0,0);
for(int i=k-1;i>=1;i--)
printf("(%d, %d)\n",p[i].x-1,p[i].y-1);
printf("(%d, %d)\n",4,4);
}
for(int i=0;i<4;i++)
{
node v;
v.x=u.x+dir[i][0];
v.y=u.y+dir[i][1];
if(!vis[v.x][v.y]&&v.x>=1&&v.x<=5&&v.y>=1&&v.y<=5&&mp[v.x][v.y]!=1)
{
vis[v.x][v.y]=1;
pre[v.x][v.y]=u;
q.push(v);
}
}
}
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt","r",stdin);
#endif
//freopen("out.txt","w",stdout);
for(int i=1;i<=5;i++)
for(int j=1;j<=5;j++)
{
scanf("%d",&mp[i][j]);
}
bfs();
return 0;
}
0 0
- poj 3984 迷宫问题
- poj 3984 迷宫问题
- POJ-3984-迷宫问题
- Poj 3984 迷宫问题
- 迷宫问题 poj 3984
- poj 3984迷宫问题
- poj 3984 迷宫问题
- POJ-3984-迷宫问题
- poj 3984- 迷宫问题
- POJ 3984 迷宫问题
- poj 3984 迷宫问题
- poj 3984:迷宫问题
- POJ-3984-迷宫问题
- POJ 3984 迷宫问题
- poj 3984迷宫问题
- POJ 3984 迷宫问题
- POJ 3984 迷宫问题
- poj 3984 迷宫问题
- Codeforces Round #292 (Div. 2)
- IOS中NSUserDefaults的用法
- Codeforces Round #291 (Div. 2)
- HDU 2181 哈密顿绕行世界问题
- POJ 1426 Find The Multiple
- POJ 3984 迷宫问题
- HDU 2612 Find a way
- 字典树(trie 树)
- intellij idea15 破解
- UVa 11732 - strcmp() Anyone?
- POJ 3630 Phone List
- HDU 1251 统计难题
- 报名|「OneAPM x DaoCloud」技术公开课:Docker性能监控!
- HDU 1247 Hat’s Words
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
英语单词口语练习
成考专升本英语单词
英语基础词汇
学位英语词汇
英语高考词汇
六年级英语上册单词表
英语词汇教学
英文口语单词
小学生怎么记英语单词
九年级上册英语单词朗读
法律英语词汇
有寓意的英文单词
小学六年级英语单词大全
1一20的英语单词
1到10英语单词
小学英语单词学习
三年级上册英语书单词
英语高端词汇
1一100的英语单词
一至三十的英语单词
高中必修五英语单词
1到90的英语单词
五年级上册英语书单词
1至10的英语单词
英语单词速记方法
四十的英文单词
小学六年级英语单词
三十到一百的英语单词
英语词汇测试
安卓系统升级软件
魔兽世界6.0升级补丁
三国志12升级补丁
安卓系统升级包
升级包
android升级包下载
长虹电视升级包下载
安卓7 0系统升级包下载
好猫吉祥升级版多少钱一包
360离线升级包
升级包下载
安卓7.0通用升级包