博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【HDOJ】1484 Basic wall maze
阅读量:6482 次
发布时间:2019-06-23

本文共 1712 字,大约阅读时间需要 5 分钟。

BFS。

1 /* 1484 */ 2 #include 
3 #include
4 #include
5 #include
6 #include
7 #include
8 using namespace std; 9 10 typedef struct {11 int x, y;12 string s;13 } node_t;14 15 bool m[8][8][4];16 bool visit[8][8];17 char ds[5] = "NSWE";18 int dir[4][2] = {19 -1,0,1,0,0,-1,0,120 };21 22 const int n = 6;23 int bx, by, ex, ey;24 string ans;25 26 void bfs() {27 int x = bx, y = by;28 int i, j, k;29 queue
Q;30 string s;31 node_t nd, tmp;32 33 memset(visit, false, sizeof(visit));34 visit[x][y] = true;35 nd.x = x;36 nd.y = y;37 nd.s = "";38 Q.push(nd);39 40 while (!Q.empty()) {41 nd = Q.front();42 Q.pop();43 for (i=0; i<4; ++i) {44 if (m[nd.x][nd.y][i])45 continue;46 x = nd.x + dir[i][0];47 y = nd.y + dir[i][1];48 if (x<=0 || x>6 || y<=0 || y>6 || visit[x][y])49 continue;50 visit[x][y] = true;51 tmp.x = x;52 tmp.y = y;53 tmp.s = nd.s + ds[i];54 if (x==ex && y==ey) {55 ans = tmp.s;56 return ;57 }58 Q.push(tmp);59 }60 }61 }62 63 int main() {64 int i, j, k;65 int x, y;66 int a, b, c, d;67 68 #ifndef ONLINE_JUDGE69 freopen("data.in", "r", stdin);70 #endif71 72 while (scanf("%d %d",&by,&bx)!=EOF && (by||bx)) {73 scanf("%d %d", &ey, &ex);74 memset(m, false, sizeof(m));75 for (i=0; i<3; ++i) {76 scanf("%d%d%d%d", &a,&b,&c,&d);77 if (b == d) {78 // north & south need to mask79 for (y=a+1; y<=c; ++y) {80 m[b][y][1] = true;81 m[b+1][y][0] = true;82 }83 } else {84 // west & east need to mask85 for (x=b+1; x<=d; ++x) {86 m[x][a][3] = true;87 m[x][a+1][2] = true;88 }89 }90 }91 bfs();92 printf("%s\n", ans.c_str());93 }94 95 return 0;96 }

 

转载于:https://www.cnblogs.com/bombe1013/p/4296914.html

你可能感兴趣的文章
CISCO 路由器(4)
查看>>
网络服务搭建、配置与管理大全(Linux版)
查看>>
Silverlight 5 Beta新特性[4]文本缩进控制
查看>>
springMVC多数据源使用 跨库跨连接
查看>>
Git服务端和客户端安装笔记
查看>>
Spring Security(14)——权限鉴定基础
查看>>
IntelliJ IDEA快捷键
查看>>
【iOS-cocos2d-X 游戏开发之十三】cocos2dx通过Jni调用Android的Java层代码(下)
查看>>
MongoDB的基础使用
查看>>
进程间通信——命名管道
查看>>
ssh登陆不需要密码
查看>>
java mkdir()和mkdirs()区别
查看>>
OSChina 周六乱弹 ——揭秘后羿怎么死的
查看>>
IT人员的职业生涯规划
查看>>
sorry,you must have a tty to run sudo
查看>>
ios开发中使用正则表达式识别处理字符串中的URL
查看>>
项目中的积累,及常见小问题
查看>>
Python类型转换、数值操作(收藏)
查看>>
oracle11g dataguard 安装手册(转)
查看>>
1. Two Sum - Easy - Leetcode解题报告
查看>>