博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 3009
阅读量:5946 次
发布时间:2019-06-19

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

#include
#include
#include
#define MAX 30 using namespace std; int map[MAX][MAX]; const int dir[4][2]={-1, 0, 1, 0, 0, -1, 0, 1}; int h, w, ans; void dfs(int x, int y, int steps){ if(steps > ans || steps > 10 || map[x][y] == -1) return; for(int i = 0; i < 4; i ++){ int xx = x; int yy = y; if(map[xx + dir[i][0]][yy + dir[i][1]] != 1){ while(map[xx + dir[i][0]][yy + dir[i][1]] != 1){ xx += dir[i][0]; yy += dir[i][1]; if(map[xx][yy] == -1) break; if(map[xx][yy] == 3){ if(ans > steps + 1) ans = steps + 1; return; } } if(map[xx + dir[i][0]][yy + dir[i][1]] == 1){ map[xx + dir[i][0]][yy + dir[i][1]] = 0; dfs(xx, yy, steps + 1); map[xx + dir[i][0]][yy + dir[i][1]] = 1; } } }}int main(){ int st, end; /* freopen("in.c", "r", stdin); */ while(cin >> w >> h && (h + w)){ memset(map, -1, sizeof(map)); for(int i = 1; i <= h; i ++){ for(int j = 1; j <= w; j ++){ cin >> map[i][j]; if(map[i][j] == 2){ st = i; end = j; } } } ans = 1 << 29; dfs(st, end, 0); if(ans > 10) ans = -1; cout << ans << endl; } return 0; }

转载于:https://www.cnblogs.com/wangzhili/p/3950305.html

你可能感兴趣的文章
JavaScript中的作用域,闭包和上下文
查看>>
Python中使用ElementTree解析xml
查看>>
Python LOGGING使用方法
查看>>
Dominating Patterns
查看>>
截取指定字符串
查看>>
metrics-server最新版本有坑,慎用
查看>>
linux虚拟文件系统浅析
查看>>
HBase数据压缩编码探索
查看>>
sprint计划会议总结
查看>>
团队项目冲刺1
查看>>
fon循环总是返回最后值问题
查看>>
Android新权限机制 AppOps
查看>>
“蓝桥杯”软件大赛入门训练4道题
查看>>
Unable to get the CMake version located at
查看>>
爬虫基本原理
查看>>
Heritage from father
查看>>
css选择器
查看>>
使用多线程
查看>>
Django--Uploaded Files以及Handlers
查看>>
在IIS(64位)上部署WCF服务访问Oracle数据库
查看>>