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

题意 : 光辉骑士 一直都在 迷宫的右上角 , 第一行给你迷宫的规格 , 下面是迷宫 "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. Android jdbc连接mysql报错解决方案 (Communications link failure)

    最近调试安卓连接mysql真是心态爆炸,快两天才搞出来.以下整理一些常见问题. 检查manifest文件里网络权限是否打开 检查数据库IP是否有问题(包括一些沙雕错误,比如是不是在ip首或尾多了个空格 ...

  2. RAII手法封装互斥锁

    RAII手法是 Resource Acquisition is Initialization 的缩写,意为“资源获取即初始化”,在使用智能指针时也使用,下面是针对互斥量时的实现, #include & ...

  3. 腾讯云,体验域名注册解析与SSL证书

    体验域名注册解析与SSL证书 购买域名 任务时间:30min ~ 60min 在腾讯云上购买域名 首先需要在腾讯云上购买域名, 点击以下链接可以观看购买操作的指引 如何在腾讯云上购买域名 域名解析 域 ...

  4. RequestMapping_HiddenHttpMethodFilter 过滤器

    [REST] 1.REST:即Representational State Transfer.(资源)表现层状态转化.是目前最流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以得 ...

  5. win7 32位机安装VMware win7 64位虚拟机

    VMware10虚拟机怎么安装win7系统(详细教程):https://jingyan.baidu.com/article/86f4a73ec62e8f37d65269a1.html 然而上述教程想不 ...

  6. Python - 对多继承以及super的一些了解

    Python支持多继承,与C++一样都会出现一种问题:子类继承的多个父类又继承了同一个父类,这时就有可能会出现父类构造方法被调用多次的情况.关于这个问题,我找了一些资料,虽然没有亲自全部验证,这里我总 ...

  7. jsp内置对象(转)

    JSP中一共预先定义了9个这样的对象,分别为:request.response.session.application.out.pagecontext.config.page.exception 1. ...

  8. 使用C#执行PowerShell命令

    按照网上的教程配置会发生SSL链接错误 该文章的最后使用了SSL来保证账户在连接服务器的时候不发生账户认证错误,但是我经过测试发现这个是不可行的,有一种更为简单的方法 首先要对服务器进行winrm设置 ...

  9. HDU——1576 A/B

    A/B Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  10. Ubuntu 16.04设置开机启动应用程序

    在终端通过以下命令进行设置,Dash已经搜索不到Startup了: gnome-session-properties 或者直接在Dash中搜索:gnome-session