首页 > 其他 > 详细

G. Bucket Brigade

时间:2020-02-23 22:04:25      阅读:21      评论:0      收藏:0      [点我收藏+]

标签:con   urn   spa   char   tdi   string   

G. Bucket Brigade

https://codeforces.com/group/5yyKg9gx7m/contest/269908/problem/G

题目描述:

B点着火了,奶牛们要搭一条从L到B到的桥来传水救火。问桥的长度。

分析:

R不能走,求从B走到L的最短路。标准的bfs题。

代码:

#include <stdio.h>
#include <cstring>
#include <algorithm>
#include <queue>
#include <cmath>
#include <iostream>
using namespace std;
struct dio
{
    int y,x;
    char c;
    int d;
}pos[15][15];
queue <dio> q;
int d[3]={-1,0,1};
int bfs()
{
    while(!q.empty())
    {
        struct dio p=q.front();
        q.pop();
        for(int i=0;i<3;i++)
        {
            for(int j=0;j<3;j++)
            {
                if(abs(d[i])+abs(d[j])!=1) continue;
                int dx=p.x+d[i],dy=p.y+d[j];
                if(dx<=0||dx>10||dy<=0||dy>10) continue;
                if(pos[dy][dx].c==.)
                {   
                    pos[dy][dx].d=p.d+1;
                    pos[dy][dx].c=J;
                    q.push(pos[dy][dx]);
                }
                else if(pos[dy][dx].c==L)
                {
                    return p.d;
                }
            }
        }
    }
    
}
int main()
{
    int by,bx,ey,ex;
    for(int i=1;i<=10;i++)
    {
        for(int j=1;j<=10;j++)
        {
            cin>>pos[i][j].c;
            pos[i][j].y=i;
            pos[i][j].x=j;
            if(pos[i][j].c==B)
            {
                q.push(pos[i][j]);
                pos[i][j].d=0;
            }
        }
    }
    cout<<bfs()<<endl;
    return 0;
} 

 

 

G. Bucket Brigade

标签:con   urn   spa   char   tdi   string   

原文:https://www.cnblogs.com/studyshare777/p/12354159.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号