5465: 【搜索】奶牛干饭

题目描述

农场主John把农场分为了一个 r 行 c 列的矩阵,并发现奶牛们无法通过其中一些区域。此刻,Bessie 位于坐标为 (1,1) 的区域,并想到坐标为 (r,c) 的牛棚享用晚餐。她知道,以她所在的区域为起点,每次移动至相邻的四个区域之一,如果奶牛吃不到饭就会大哭。

输入

第一行两个整数 r,c。

接下来 r 行,每行 c 个字符,表示 Bessie 能否通过相应位置的区域。字符只可能是 0 或 1。

0 表示 Bessie 可以通过该区域。
1 表示 Bessie 无法通过该区域。

输出

1行,输出Bessie的最少移动次数或-1

样例输入

3 3
001
101
100

样例输出

4

Code:

#include<bits/stdc++.h>
using namespace std;
int r,c,dx[4]={0,0,1,-1},dy[4]={1,-1,0,0},ans=INT_MAX;
char mp[1005][1005];
bool vis[1005][1005];
struct node{
	int x,y,step;
};
void bfs(int x,int y,int step){
	queue<node>que;
	node temp={x,y,step};
	vis[x][y]=true;
	que.push(temp);
	while(!que.empty()){
		node now=que.front();
		que.pop();
		for(int i=0;i<4;i++){
			int xx=now.x+dx[i],yy=now.y+dy[i];
			if(xx<1||xx>r||yy<1||yy>c||vis[xx][yy]==true||mp[xx][yy]=='1'){
				continue;
			}
			vis[xx][yy]=true;
			node temp={xx,yy,now.step+1};
			que.push(temp);
			if(xx==r&&yy==c){
				ans=min(ans,temp.step);
			}
		}
	}
	if(ans!=INT_MAX){
		cout<<ans;
	}else{
		cout<<-1;
	}
}
int main(){
    cin>>r>>c;
    for(int i=1;i<=r;i++){
    	for(int j=1;j<=c;j++){
    		cin>>mp[i][j];
		}
	}
	bfs(1,1,0);
    return 0;
}

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-22 00:06:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-22 00:06:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-22 00:06:02       87 阅读
  4. Python语言-面向对象

    2024-03-22 00:06:02       96 阅读

热门阅读

  1. http模块 如何获取http请求的报文?

    2024-03-22 00:06:02       48 阅读
  2. 读代码整洁之道总结

    2024-03-22 00:06:02       40 阅读
  3. Python Web开发记录 Day14:Django part8 订单管理

    2024-03-22 00:06:02       40 阅读
  4. VUE tinymce editor 配置手册-封装组件

    2024-03-22 00:06:02       47 阅读
  5. 【C#】Microsoft learn入门C#教程简介

    2024-03-22 00:06:02       36 阅读
  6. 20.python——数据读取与存储

    2024-03-22 00:06:02       46 阅读
  7. macOS安装erlang以及rabbitMq详情版本

    2024-03-22 00:06:02       41 阅读
  8. rust - 对文件夹进行zip压缩加密

    2024-03-22 00:06:02       56 阅读
  9. web蓝桥杯真题:灯的颜色变化

    2024-03-22 00:06:02       44 阅读
  10. 软件测试面试接口测试常见问题

    2024-03-22 00:06:02       45 阅读