很早的时候就看了这一道题目 , 当时不会做 , 现在 边听歌边写无压力 ........

题意 : 光辉骑士 一直都在 迷宫的右上角 , 第一行给你迷宫的规格 , 下面是迷宫 "O" 代表空地需要花一个单位时间跨越 , "#" 代表

墙 ,需要三个单位的时间把墙破开 , 也就是 "O"为一个时间  "#"为4个时间 .

下面附上代码 .

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<vector>
#include<set>
#include<stack>
#include<string>
#include<sstream>
#include<map>
#include<cctype>
using namespace std;
struct node
{
int x,y,step;
friend bool operator <(node s1,node s2)
{
return s1.step>s2.step;
}
};
char a[][];
int n,m,tx,ty,b[][]={,-,,,-,,,},visited[][];
priority_queue<node>Q;
int BFS(int x,int y)
{
node q={x,y,};
Q.push(q);
while(!Q.empty())
{
node e=Q.top(); // 怎么会把 这里 忘了呢 ?
Q.pop();
for(int i=;i<;i++)
{
q.x=e.x+b[i][],q.y=e.y+b[i][]; //怎么 整天 都 弄错 ?
if(q.x>=&&q.x<m&&q.y>=&&q.y<n&&!visited[q.y][q.x])
{
if(a[q.y][q.x]=='O')
q.step=e.step+;
if(a[q.y][q.x]=='#')
q.step=e.step+;
visited[q.y][q.x]=;
Q.push(q);
if(q.x==tx&&q.y==ty) //注意 安放的位置
{
return q.step;
}
}
}
}
}
int main()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
for(int i=;i<n;i++)
{
for(int j=;j<m;j++)
{
scanf(" %c",&a[i][j]);
}
}
scanf("%d%d",&ty,&tx);
tx--;
ty--;
memset(visited,,sizeof(visited));
visited[][]=;
while(!Q.empty()) // 注意 清空
Q.pop();
int mark=BFS(,);
printf("%d\n",mark);
}
}

最新文章

  1. 特殊的数据类型: bit、sql_variant、sysname
  2. 将.dat文件导入数据库
  3. SQL Server调优系列基础篇(子查询运算总结)
  4. Inno Setup制作应用程序安装包
  5. Android ListView 图片异步加载和图片内存缓存
  6. POJ 1961 Period( KMP )*
  7. 虚拟机下运行linux通过nat模式与主机通信、与外网连接
  8. 安装JDK设置环境变量
  9. jQuery慢慢啃之事件对象(十一)
  10. php使用 _before_index() 来实现访问页面前,判断登录
  11. [Android学习笔记]双缓冲绘图技术
  12. Requests库介绍
  13. 网站开发进阶(二十二)HTML UI知识汇总(更新中...)
  14. Eclipse中使用Maven搭建SSM框架
  15. SSH连接GitHub并配置ssh key
  16. U66785 行列式求值
  17. laravel读取excel
  18. Django Rest framework 框架之认证使用和源码执行流程
  19. day32 process模块用法
  20. 开发环境之git:团队协作git工作流与常用命令

热门文章

  1. Linux设置history命令显示行数以及时间
  2. NFV
  3. idea搭建maven项目 【转发】
  4. radis入门
  5. circumferential averge streamwise velocity using Tecplot and Matlab
  6. AOP基础
  7. 关于字符串不为空 错误:s!=null
  8. Leetcode 93.复制IP地址
  9. Uva1103 Ancient Messages
  10. Sliding Window(滑动窗口)