利剑劈荆 2024-10-31 23:21 采纳率: 33.3%
浏览 6

南桥杯bfs穿越雷区有一案例未通过求纠正

最后一个案例一直没过,跟答案对比感觉没什么不同,求解


#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int>PII;
const int N=110;

int n;
char num[N][N];
int dist[N][N];
int startx,starty,bx,by;
queue<PII>q;
int dx[]={-1,0,1,0},dy[]={0,1,0,-1};

int bfs(int x,int y)
{
  memset(dist,-1,sizeof(dist));
  dist[x][y]=0;
  q.push({x,y});
  while(!q.empty())
  {
    auto t=q.front();
    q.pop();
    
    for(int i=0;i<4;++i)
  {
    int a1=t.first+dx[i],b1=t.second+dy[i];
    if(a1<1||a1>n||b1<1||b1>n)continue;
    if(dist[a1][b1]!=-1)continue;
    if(num[a1][b1]==num[t.first][t.second])continue;

    q.push({a1,b1});
    
    dist[a1][b1]=dist[t.first][t.second]+1;
    if(a1==bx&&b1==by)return dist[bx][by];
  }
  }
  return dist[bx][by];
}

int main()
{
  // 请在此输入您的代码
  cin>>n;
  
  for(int i=1;i<=n;++i)
  {
    for(int j=1;j<=n;++j)
    {
      cin>>num[i][j];
      if(num[i][j]=='A')
      {
        startx=i;starty=j;
      }
      if(num[i][j]=='B')
      {
        bx=i;by=j;
      }
      getchar();
    }
  }
  
  cout<<bfs(startx,startx);
  return 0;
} 
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 创建了问题 10月31日

    悬赏问题

    • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
    • ¥15 java 的protected权限 ,问题在注释里
    • ¥15 这个是哪里有问题啊?
    • ¥15 关于#vue.js#的问题:修改用户信息功能图片无法回显,数据库中只存了一张图片(相关搜索:字符串)
    • ¥15 texstudio的问题,
    • ¥15 spaceclaim模型变灰色
    • ¥15 求一份华为esight平台V300R009C00SPC200这个型号的api接口文档
    • ¥15 字符串比较代码的漏洞
    • ¥15 欧拉系统opt目录空间使用100%
    • ¥15 ul做导航栏格式不对怎么改?