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

题意 : 光辉骑士 一直都在 迷宫的右上角 , 第一行给你迷宫的规格 , 下面是迷宫 "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);
}
}

Oh,mygoddess的更多相关文章

随机推荐

  1. 深度完整的了解MySQL锁

    今天就讲讲MySQL的锁 主讲:Mysql的悲观锁 和 乐观锁官方:If you query data and then insert or update related data within th ...

  2. 利用postman进行接口测试并发送带cookie请求的方法

    做web测试的基本上都用用到postman去做一些接口测试,比如测试接口的访问权限,对于某些接口用户A可以访问,用户B不能访问:比如有时需要读取文件的数据.在postman上要实现这样测试,我们就必要 ...

  3. 关于jupyter notebook

    直接点击进行跳转阅读:https://zhuanlan.zhihu.com/p/33105153

  4. 【Codeforces 159B】Matchmaker

    [链接] 我是链接,点我呀:) [题意] 笔和笔盖 笔有颜色和直径 笔盖也有颜色和直径 笔盖和笔如果直径相等 那么称为good 如果笔盖和笔直径相等.颜色也相等,那么称为very good 问你怎样安 ...

  5. App后台开发运维和架构实践学习总结(4)——APP的注册和登录功能设计

    一.为什么需要注册和登录? 是否需要注册和登录的关键取决于产品形态. 如果用户注册登录对于用户需求.产品功能.商业模式本身带不来任何价值的话,就没必要设计这样的功能.比如一些实用工具类的产品:计算器. ...

  6. Css学习总结(3)——CSS布局解决方案 - 水平、垂直居中、多列布局、全屏布局

    居中布局 水平居中 子元素于父元素水平居中且其(子元素与父元素)宽度均可变. inline-block + text-align <div class="parent"> ...

  7. Win32编程API 基础篇 -- 1.入门指南 根据英文教程翻译

    入门指南 本教程是关于什么的 本教程的目的是向你介绍使用win32 API编写程序的基础知识(和通用的写法).使用的语言是C,但大多数C++编译器也能成功编译,事实上,教程中的绝大多数内容都适用于任何 ...

  8. 洛谷—— P2196 挖地雷

    https://www.luogu.org/problem/show?pid=2196 题目背景 NOIp1996提高组第三题 题目描述 在一个地图上有N个地窖(N<=20),每个地窖中埋有一定 ...

  9. 常见的HTTP状态码(HTTP Status Code)

    HTTP状态码 当使用浏览器访问一个网页时,浏览器会向网页所在服务器发出请求.当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览 ...

  10. 定义Portal显示规则

    Defining Portal Display Rules Use You use the Portal Display Rules editor to create and edit rule co ...