手癌!日常手癌!被自己气死!

 #include<iostream>
#include<cstring>
#include<queue>
#include<algorithm>
#define maxn 25
using namespace std;
const int dx[]={-,,,},dy[]={,,-,};
struct point{
int x,y;
int time;
}start;
char map[maxn][maxn];
int v[maxn][maxn];
int n,m,ans;
int check(point next){
if (map[next.x][next.y]=='*' || next.x< || next.x>=n || next.y< || next.y>=m || v[next.x][next.y]) return ;
else return ;
}
int bfs(point start){
queue<point> Q;
Q.push(start);
v[start.x][start.y]=;
while (!Q.empty()){
point pre=Q.front();
Q.pop();
if (map[pre.x][pre.y]=='T'){
return pre.time;
}
for (int i=;i<;i++){
point next;
next.x=pre.x+dx[i];
next.y=pre.y+dy[i];
next.time=pre.time+;
if (check(next)) continue;
if (map[next.x][next.y]=='.' || map[next.x][next.y]=='T'){
Q.push(next);
v[next.x][next.y]=;
}
else if (map[next.x][next.y]=='|' && !(pre.time&) || map[next.x][next.y]=='-' && (pre.time&)){ //表示横着走
if (i>){
next=pre;
next.time++;
Q.push(next);
continue;
}
next.x+=dx[i];
if (check(next)) continue;
Q.push(next);
v[next.x][next.y]=;
}
else { // 表示竖着走
if (i<){
next=pre;
next.time++;
Q.push(next);
continue;
}
next.y+=dy[i];
if (check(next)) continue;
Q.push(next);
v[next.x][next.y]=;
}
}
}
}
int main(){
while (cin >> n >> m){
for (int i=;i<n;i++){
for (int j=;j<m;j++){
cin >> map[i][j];
if (map[i][j]=='S'){
start.x=i;
start.y=j;
start.time=;
}
}
}
memset(v,,sizeof(v));
ans=bfs(start);
cout << ans << endl;
}
return ;
}

最新文章

  1. 苹果强制使用HTTPS传输了怎么办?——关于HTTPS,APP开发者必须知道的事
  2. c# 三种常见的委托
  3. 给ListBox每项加图标
  4. JAVA JLabel自定义子类无法显示
  5. Spring框架学习[IoC容器高级特性]
  6. Remove Invalid Parentheses
  7. (六)文件操作的主要接口API
  8. jsp的el表达式
  9. Hbase的安装(hadoop-2.6.0,hbase1.0)
  10. 小情人emacs的自动补全
  11. Angular初级入门
  12. birkenfeld / sphinx-contrib — Bitbucket
  13. BEGINNING SHAREPOINT&amp;#174; 2013 DEVELOPMENT 第7章节--打包并部署SP2013 Apps 打包并公布App
  14. JAVA 继承中的this和super
  15. 引用mchange-commons-java-0.2.3.4.jar架包
  16. mysql 1,2,3 关联查询出数字代表的具体意思
  17. 数据迁移_把RAC环境备份的数据,恢复到另一台单机Oracle本地文件系统下
  18. AngularJS 表达式 对象和数组
  19. Android Toast.makeText用法
  20. Vue.js 登录注册实现

热门文章

  1. LINUX 笔记5
  2. Luugu 3084 [USACO13OPEN]照片Photo
  3. LUOGU P4408 [NOI2003]逃学的小孩(树的直径)
  4. Ps中的难点问题分析
  5. div浮停在页面最上或最下
  6. C语言dos程序源代码分享(进制转换器)
  7. 2018.09.08 bzoj4518: [Sdoi2016]征途(斜率优化dp)
  8. DevExpress gridcontrol Master-Detail绑定到对象类型
  9. 疯狂安装oracle 12c,此版本没有scott这个用户
  10. 百度地图(icon,zIndex)