HDU 1180题 诡异的楼梯
来源:互联网 发布:淘宝网发布商品怎么分 编辑:程序博客网 时间:2024/06/02 09:40
题目链接~~>
这题其实很简单,在走楼梯时只要判断是否能走就可以,如果不能走,可以选择等下一分钟再走,还有一点就是楼梯不能标记,可以从不同方向过。
代码:
#include<stdio.h>#include<queue>using namespace std ;int dx[4]={-1,1,0,0},dy[4]={0,0,1,-1} ;char s[25][25] ;int m,n ;struct zhang{ int x,y,bu ;} ;int bfs(int x,int y){ queue<zhang>q ; zhang current,next ; int sx,sy ; current.x=x ; current.y=y ; s[x][y]='*' ; current.bu=0 ; q.push(current) ; while(!q.empty()) { current=q.front() ; q.pop() ; for(int i=0;i<4;i++) { next.x=current.x+dx[i] ; next.y=current.y+dy[i] ; if(next.x>=0&&next.x<n&&next.y>=0&&next.y<m&&s[next.x][next.y]!='*') { next.bu=current.bu+1 ; sx=next.x+dx[i] ; sy=next.y+dy[i] ; if(s[next.x][next.y]=='|'&&s[sx][sy]!='*') { if(current.bu%2&&(i==3||i==2)) { next.x=sx ; next.y=sy ; if(s[sx][sy]=='T') return next.bu ; s[sx][sy]='*' ; q.push(next) ; } else if(current.bu%2==0&&(i==0||i==1)) { next.x=sx ; next.y=sy ; if(s[sx][sy]=='T') return next.bu ; s[sx][sy]='*' ; q.push(next) ; } else { next.x=current.x ; next.y=current.y ; q.push(next) ; } } else if(s[next.x][next.y]=='-'&&s[sx][sy]!='*') { if(current.bu%2==0&&(i==3||i==2)) { next.x=sx ; next.y=sy ; if(s[sx][sy]=='T') return next.bu ; s[sx][sy]='*' ; q.push(next) ; } else if(current.bu%2==1&&(i==0||i==1)) { next.x=sx ; next.y=sy ; if(s[sx][sy]=='T') return next.bu ; s[sx][sy]='*' ; q.push(next) ; } else { next.x=current.x ; next.y=current.y ; q.push(next) ; } } else if(s[next.x][next.y]=='.') { s[next.x][next.y]='*' ; q.push(next) ; } else if(s[next.x][next.y]=='T') return next.bu ; } } } return -1 ;}int main(){ int i,j,ax,ay ; while(scanf("%d%d",&n,&m)!=EOF) { for(i=0;i<n;i++) { scanf("%s",s[i]) ; for(j=0;j<m;j++) if(s[i][j]=='S') { ax=i ; ay=j ; } } printf("%d\n",bfs(ax,ay)) ; } return 0 ;}
- HDU 1180题 诡异的楼梯
- hdu 1180 诡异的楼梯
- hdu 1180 诡异的楼梯
- HDU 1180 诡异的楼梯
- Hdu-1180(诡异的楼梯)
- HDU 1180 诡异的楼梯
- hdu 1180 诡异的楼梯
- 诡异的楼梯 hdu 1180
- HDU-1180 诡异的楼梯
- hdu 1180 诡异的楼梯
- hdu 1180诡异的楼梯
- HDU 1180诡异的楼梯
- hdu 1180 诡异的楼梯
- hdu 1180 诡异的楼梯
- HDU 1180 诡异的楼梯
- hdu 1180 诡异的楼梯
- hdu 1180 诡异的楼梯
- HDU 1180 诡异的楼梯
- Java Web Service
- java.net.SocketException: socket failed: EACCES (Permission denied)
- Apache使用localhost可以访问但使用本机IP(局域网)不能访问 ,本机ip地址不能访问本机服务器,wampserver集成环境 用本机ip访问不了服务器上的网页
- 基于 dbms_redefinition 在线重定义表
- MyEclipse + Maven开发Web工程的详细配置过程
- HDU 1180题 诡异的楼梯
- hadoop的stop-all无效解决
- 《失恋33天》-电视剧版
- 详细解析Java中抽象类和接口的区别
- 点击提交按钮后按钮变灰色不可用状态的三种方法
- hdu 1281 棋盘游戏 二分图匹配
- 平衡二叉树之一
- hdu 1498 50 years, 50 colors 二分图匹配
- 关于Java调用批处理命令向mysql导入数据的中文乱码有关问题