AcWing
  • 首页
  • 活动
  • 题库
  • 竞赛
  • 应用
  • 更多
    • 题解
    • 分享
    • 商店
    • 问答
    • 吐槽
  • App
  • 登录/注册

AcWing 1101. 献给阿尔吉侬的花束

作者: 作者的头像   ベ断桥烟雨ミ_53 ,  2023-02-01 10:33:51 ,  所有人可见 ,  阅读 4


0


#include <bits/stdc++.h>
using namespace std;
#define x first
#define y second
typedef pair<int,int> PII;
const int N=210;

char a[N][N];
int dist[N][N];
void bfs(PII start)
{
    queue<PII> q;
    q.push(start);
    int dx[4]={0,1,0,-1},dy[4]={-1,0,1,0};
    while(!q.empty())
    {
        PII u=q.front();
        q.pop();
        for(int i=0;i<4;i++)
        {
            int x=u.x+dx[i],y=u.y+dy[i];
            if(a[x][y]=='#')continue;
            if(a[x][y]=='.')
            {

                dist[x][y]=dist[u.x][u.y]+1;
                a[x][y]='#';
                q.push({x,y});
            }
            if(a[x][y]=='E')
            {
                cout<<dist[u.x][u.y]+1<<endl;
                return;
            }
        }
    }
    cout<<"oop!"<<endl;
}
int main(){
    int t;
    cin>>t;
    while(t--)
    {
        memset(a,'#',sizeof a);
        memset(dist,0,sizeof dist);
        int r,c;
        cin>>r>>c;
        PII start;
        for(int i=1;i<=r;i++)
        for(int j=1;j<=c;j++)
        {
            cin>>a[i][j];
            if(a[i][j]=='S')
            start.x=i,start.y=j;
        }
        bfs(start);
    }
    return 0;
}

0 评论

你确定删除吗?
1024
x

© 2018-2023 AcWing 版权所有  |  京ICP备17053197号-1
用户协议  |  隐私政策  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标
请输入绑定的邮箱地址
请输入注册信息