hdu1728
来源:互联网 发布:微盘交易php源码 编辑:程序博客网 时间:2024/06/05 17:14
/*
分析:
沿着一条直线一直走,把该直线上的所有点,当作
零消费的点。
2012-07-24
*/
分析:
沿着一条直线一直走,把该直线上的所有点,当作
零消费的点。
2012-07-24
*/
#include"stdio.h"#include"string.h"#include"queue"using namespace std;struct node{int x,y;int ts;};int map[111][111];int n,m;int x_s,y_s;int x_e,y_e;int limit;int dir[4][2]={1,0, -1,0, 0,1, 0,-1};int judge(int x,int y){if(x<0 || x>=n || y<0 || y>=m)return -1;return map[x][y];}int BFS(){queue<node>q;node cur,next;int i;int temp;cur.x=x_s;cur.y=y_s;cur.ts=-1;map[cur.x][cur.y]=-1;q.push(cur);while(!q.empty()){cur=q.front();q.pop();if(cur.ts>limit)return -1;if(cur.x==x_e && cur.y==y_e)return 1;for(i=0;i<4;i++){next.x=cur.x+dir[i][0];next.y=cur.y+dir[i][1];temp=judge(next.x,next.y);while(temp!=-1){if(temp==0){next.ts=map[next.x][next.y]=cur.ts+1;q.push(next);}next.x+=dir[i][0];next.y+=dir[i][1];temp=judge(next.x,next.y);}}}return -1;}int main(){int T;char str[111];int i,l;int ans;scanf("%d",&T);while(T--){scanf("%d%d",&n,&m);for(i=0;i<n;i++){scanf("%s",str);for(l=0;str[l];l++){if(str[l]=='.')map[i][l]=0;else if(str[l]=='*')map[i][l]=-1;}}scanf("%d%d%d%d%d",&limit,&y_s,&x_s,&y_e,&x_e);x_s--;y_s--;x_e--;y_e--;ans=BFS();if(ans==-1)printf("no\n");elseprintf("yes\n");}return 0;}
- hdu1728
- hdu1728
- hdu1728
- hdu1728
- HDU1728 BFS
- BFS hdu1728
- BFS HDU1728
- hdu1728逃离迷宫
- hdu1728 逃离迷宫
- hdu1728 逃离迷宫(bfs)
- hdu1728 逃离迷宫
- HDU1728--逃离迷宫
- hdu1728-逃离迷宫
- HDU1728:逃离迷宫(BFS)
- hdu1728逃离迷宫(bfs)
- hdu1728逃离迷宫
- HDU1728:逃离迷宫(BFS)
- HDU1728 逃离迷宫 BFS
- PTAMM阅读笔记之查找表的使用(四)
- 配置JDK和Tomcat环境变量
- JavaBean的保存范围
- openJTag烧写u-boot.bin 到NorFlash、NandFlash 杂记 mini2440
- linux分区知识与大磁盘的分区注意事项
- hdu1728
- 关于CSAPP读到的一些(1)——Alignment(出自Machine-Level Representation of Program)
- chmod的四位数的第一位代表什么
- Templates
- MSMQ(微软消息队列)简单使用-支持离线提交数据(供阅)
- JEECMS --Java CMs内容管理系统
- 为Linux增加虚拟内存(也就是交换分区)
- Log4j学习笔记
- shell脚本程序练习