HDU-1278-逃离迷宫

http://acm.hdu.edu.cn/showproblem.php?pid=1728

不好想,参考别的代码写的,题目要求转弯的次数不能超过k,BFS,从一个方向搜到底

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<queue>
using namespace std;
int n1,n2,k;
char map[105][105];
int visit[105][105];
struct node
{int x;int y;int turn;
};
int dir[4][2]={{0,1},{0,-1},{1,0},{-1,0}};
int go(int x,int y)
{if(1<=x&&x<=n1&&1<=y&&y<=n2&&map[x][y]=='.')return 1;return 0;
}
void bfs(node s1,node s2)
{queue<node>q;node st,ed;int i,nextx,nexty;memset(visit,0,sizeof(visit));st.x=s1.x;st.y=s1.y;st.turn=-1;q.push(st);while(!q.empty()){st=q.front();q.pop();for(i=0;i<4;i++){nextx=st.x+dir[i][0];nexty=st.y+dir[i][1];while(go(nextx,nexty)){if(!visit[nextx][nexty]){visit[nextx][nexty]=1;ed.x=nextx;ed.y=nexty;ed.turn=st.turn+1;if(ed.x==s2.x&&ed.y==s2.y&&ed.turn<=k){printf("yes\n");return;}q.push(ed);}nextx+=dir[i][0];nexty+=dir[i][1];}}}printf("no\n");return;
}
int main()
{int t,i,j;node s1,s2;scanf("%d",&t);while(t--){scanf("%d%d",&n1,&n2);for(i=1;i<=n1;i++){getchar();for(j=1;j<=n2;j++)scanf("%c",&map[i][j]);}scanf("%d%d%d%d%d",&k,&s1.y,&s1.x,&s2.y,&s2.x);if(s1.y==s2.y&&s1.x==s2.x)printf("yes\n");elsebfs(s1,s2);}return 0;
}

HDU-1278-逃离迷宫相关推荐

  1. hdu 1728 逃离迷宫 (bfs)

    逃离迷宫 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  2. HDU 1728 逃离迷宫(BFS的优化)

    这一题,有两个地方需要注意:(除了题目令人窒息的行列的x y设置) ①转弯如何判断? 需要给转弯的方向赋值.通常,我们在节点向四个方向延伸的时候,喜欢这样 int nextx[4]={0,0,-1,1 ...

  3. hdu 1728 逃离迷宫(dFS+优先队列)

    求转弯最少的走路方式!!!! #include<stdio.h> #include<string.h> #include<queue> using namespac ...

  4. HDU 1728 逃离迷宫

    给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,gloria可以穿越,有些地方是障碍,她必须绕行,从迷宫的一个位 ...

  5. HDU 1728 逃离迷宫【BFS】

    题意:给出一个起点,一个终点,规定的转弯次数,问能否在规定的转弯次数内到达终点--- 这一题是学(看)习(题)的(解)@_@ 主要学了两个地方 一个是剪枝,如果搜到的当前点的转弯次数小于该点turn数 ...

  6. HDU - 1728 逃离迷宫(bfs)

    题目链接:点击查看 题目大意:给出起点和终点和最多的拐弯次数k,问拐弯次数能否在小于等于k的情况下从起点到达终点 题目分析:bfs,不过和以往的不太一样,以往的bfs都是每次加入一个点,而这个题目的限 ...

  7. hdu 4524 郑厂长系列故事——逃离迷宫

    点击打开链接 郑厂长系列故事--逃离迷宫                                                                               T ...

  8. 逃离迷宫 ( BFS /DFS)

    逃离迷宫 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissi ...

  9. hdoj 1728 逃离迷宫

    逃离迷宫 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  10. 逃离迷宫的路径(打印路径)

    题目描述 现在有一个5*5的迷宫,起点在左上角,终点在右下角,现在请你来写一个程序计算一下,LZY从起点开始走迷宫,最终能否成功的逃离迷宫? 如果LZY可以逃出迷宫,请输出逃离迷宫的最短路径,否则输出 ...

最新文章

  1. org.apache.jasper.JasperException: An exception occurred processing JSP page /admin/jiaoshi/daochuEx
  2. 在EORow或者VORow中对数据进行重复性校验
  3. python3多进程爬虫(第二卷)
  4. 简单明了学习SQL CTE递归查询
  5. 用java编写一个故事的程序_使用Java怎么编写一个递归程序
  6. html div右下浮动,div 初始化及左右浮动
  7. Ubuntu、SUSE的发音
  8. 嵌入式芯片调试神器-J-Link RTT详解
  9. python下载电影天堂视频_Python抓取电影天堂电影信息的代码
  10. 520到了,教你做个JavaWeb表白墙小项目
  11. Windows动态链接库使用详解
  12. 美团外卖饿了么竞品分析:共生存?还是你死我亡?
  13. 超微服务器主板ipmi证书,超微主板的服务器使用IPMI远程安装操作系统教程
  14. 日式风格小荷才露尖尖角
  15. 横屏模式下,编辑手机联系人添加图片,保存后联系人头像与之前默认的图片重叠或者是有阴影在头像上
  16. 在matlab中使用spm8,[转载]在matlab中同时使用spm2,spm5,spm8
  17. MySQL的索引(聚簇索引和非聚簇索引)
  18. 复习对数函数相关知识
  19. 离散数学(1)---集合论
  20. 图像处理:比特平面分层

热门文章

  1. 「独家分享」阿里巴巴、腾讯、百度的内部薪资及职级体系
  2. 什么是FD.IO/VPP?
  3. 低学历逆袭难,真的只是不够努力吗?
  4. python图片合成视频
  5. java 监控系统cpu,java系统监控CPU 磁盘
  6. 中序线索二叉树的创建、线索化和遍历
  7. 双网卡的网络路由配置
  8. 【解决方案 二十六】DateGrip一键生成DML语句用于上线
  9. 脱裤子放屁之用两个栈实现队列、用两个队列实现栈
  10. redistemplete请求spring security /oauth/token 报401错误,表示没有权限