Oh,mygoddess

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

 

题意 : 光辉骑士 一直都在 迷宫的右上角 , 第一行给你迷宫的规格 , 下面是迷宫 "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[52][52];
int n,m,tx,ty,b[4][2]={0,-1,0,1,-1,0,1,0},visited[52][52];
priority_queue<node>Q;
int BFS(int x,int y)
{
    node q={x,y,0};
    Q.push(q);
    while(!Q.empty())
    {
        node e=Q.top();                         //  怎么会把 这里  忘了呢    ?
        Q.pop();
        for(int i=0;i<4;i++)
        {
            q.x=e.x+b[i][0],q.y=e.y+b[i][1];   //怎么 整天 都  弄错    ? 
            if(q.x>=0&&q.x<m&&q.y>=0&&q.y<n&&!visited[q.y][q.x])
            {
                if(a[q.y][q.x]=='O')
                    q.step=e.step+1;
                if(a[q.y][q.x]=='#')
                    q.step=e.step+4;
                visited[q.y][q.x]=1;
                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=0;i<n;i++)
        {
            for(int j=0;j<m;j++)
            {
                scanf(" %c",&a[i][j]);
            }
        }
        scanf("%d%d",&ty,&tx);
        tx--;
        ty--;
        memset(visited,0,sizeof(visited));
        visited[0][0]=1;
        while(!Q.empty())   //  注意  清空
            Q.pop();
        int mark=BFS(0,0);
        printf("%d\n",mark);
    }
}
复制代码

 

 

 

 

posted @   X-POWER  阅读(473)  评论(0编辑  收藏  举报
编辑推荐:
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
阅读排行:
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· Winform-耗时操作导致界面渲染滞后
· Phi小模型开发教程:C#使用本地模型Phi视觉模型分析图像,实现图片分类、搜索等功能
· 语音处理 开源项目 EchoSharp
· drools 规则引擎和 solon-flow 哪个好?solon-flow 简明教程
点击右上角即可分享
微信分享提示