hdoj1180 诡异的楼梯(bfs+奇偶判断)
2024-08-27 03:54:15
手癌!日常手癌!被自己气死!
#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 ;
}
最新文章
- 苹果强制使用HTTPS传输了怎么办?——关于HTTPS,APP开发者必须知道的事
- c# 三种常见的委托
- 给ListBox每项加图标
- JAVA JLabel自定义子类无法显示
- Spring框架学习[IoC容器高级特性]
- Remove Invalid Parentheses
- (六)文件操作的主要接口API
- jsp的el表达式
- Hbase的安装(hadoop-2.6.0,hbase1.0)
- 小情人emacs的自动补全
- Angular初级入门
- birkenfeld / sphinx-contrib — Bitbucket
- BEGINNING SHAREPOINT&;#174; 2013 DEVELOPMENT 第7章节--打包并部署SP2013 Apps 打包并公布App
- JAVA 继承中的this和super
- 引用mchange-commons-java-0.2.3.4.jar架包
- mysql 1,2,3 关联查询出数字代表的具体意思
- 数据迁移_把RAC环境备份的数据,恢复到另一台单机Oracle本地文件系统下
- AngularJS 表达式 对象和数组
- Android Toast.makeText用法
- Vue.js 登录注册实现
热门文章
- LINUX 笔记5
- Luugu 3084 [USACO13OPEN]照片Photo
- LUOGU P4408 [NOI2003]逃学的小孩(树的直径)
- Ps中的难点问题分析
- div浮停在页面最上或最下
- C语言dos程序源代码分享(进制转换器)
- 2018.09.08 bzoj4518: [Sdoi2016]征途(斜率优化dp)
- DevExpress gridcontrol Master-Detail绑定到对象类型
- 疯狂安装oracle 12c,此版本没有scott这个用户
- 百度地图(icon,zIndex)