当前位置: 首页 > wzjs >正文

东莞知名企业排名宁波谷歌seo推广公司

东莞知名企业排名,宁波谷歌seo推广公司,网络营销推广方法选择,幼儿园主题网络图设计我爱秋天题目描述 给定一个NM 的网格迷宫 G。G 的每个格子要么是道路,要么是障碍物(道路用 11表示,障碍物用 0 表示)。 已知迷宫的入口位置为 (x1​,y1​),出口位置为 (x2​,y2​)。问从入口走到出口,最少要走多少…

题目描述

给定一个N×M 的网格迷宫 G。G 的每个格子要么是道路,要么是障碍物(道路用 11表示,障碍物用 0 表示)。

已知迷宫的入口位置为 (x1​,y1​),出口位置为 (x2​,y2​)。问从入口走到出口,最少要走多少个格子。

输入描述

输入第 11 行包含两个正整数 N,M,分别表示迷宫的大小。

接下来输入一个 𝑁×𝑀N×M 的矩阵。若 Gi,j​=1 表示其为道路,否则表示其为障碍物。

最后一行输入四个整数 𝑥1,𝑦1,𝑥2,𝑦2表示入口的位置和出口的位置。

1≤N,M≤102,0≤Gi,j​≤1,1≤x1​,x2​≤N,1≤y1​,y2​≤M。

输出描述

输出仅一行,包含一个整数表示答案。

若无法从入口到出口,则输出 −1;

输入输出样例

示例 1

输入

5 5 
1 0 1 1 0
1 1 0 1 1 
0 1 0 1 1
1 1 1 1 1
1 0 0 0 1
1 1 5 5 

输出

8

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

代码为:

#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
#define  x first
#define  y second
using namespace std;
typedef pair<int,int> PII;
const int N=1e2+10;
int n,m;
int x2,y2;//出口的位置
int g[N][N];//存储地图
int dist[N][N];//每个点到起点的距离 
queue<PII> q;//存坐标
int dx[4]={-1,1,0,0};
int dy[4]={0,0,-1,1};int bfs(int x1,int y1)
{memset(dist,-1,sizeof dist);//初始都为-1q.push({x1,y1});dist[x1][y1]=0;while(!q.empty()){auto Top=q.front();//取出对头q.pop();//弹出对头for(int i=0;i<4;i++){int a=Top.x+dx[i];int b=Top.y+dy[i];//入口的位置的下一个位置if(a<0||a>n||b<0||b>m) continue;//越界if(g[a][b]!=1) continue;//不是道路if(dist[a][b]>1) continue;q.push({a,b});dist[a][b]=dist[Top.x][Top.y]+1;if(a==x2&&b==y2) return dist[x2][y2];}}return -1;
}int main()
{ios::sync_with_stdio(false);cin.tie(0);int x1,y1;//入口的位置cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)cin>>g[i][j];}cin>>x1>>y1>>x2>>y2;int res=bfs(x1,y1);cout<<res<<'\n';return 0;
}

优化后的代码(运行时间1ms):

#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
#define  x first
#define  y second
using namespace std;
typedef pair<int,int> PII;
const int N=1e2+10;
int n,m;
int x2,y2;//出口的位置
int g[N][N];//存储地图
int dist[N][N];//每个点到起点的距离 
queue<PII> q;//存坐标
int dx[4]={-1,1,0,0};
int dy[4]={0,0,-1,1};int bfs(int x1,int y1)
{memset(dist,-1,sizeof dist);//初始都为-1q.push({x1,y1});dist[x1][y1]=0;while(!q.empty()){auto Top=q.front();//取出对头q.pop();//弹出对头for(int i=0;i<4;i++){int a=Top.x+dx[i];int b=Top.y+dy[i];//入口的位置的下一个位置if(a<0||a>n||b<0||b>m) continue;//越界if(g[a][b]!=1) continue;//不是道路if(dist[a][b]>1) continue;q.push({a,b});dist[a][b]=dist[Top.x][Top.y]+1;if(a==x2&&b==y2) return dist[a][b];}}return -1;
}int main()
{ios::sync_with_stdio(false);cin.tie(0);int x1,y1;//入口的位置cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)cin>>g[i][j];}cin>>x1>>y1>>x2>>y2;int res=bfs(x1,y1);cout<<res<<'\n';return 0;
}

http://www.dtcms.com/wzjs/363464.html

相关文章:

  • 长沙长沙h5网站建设谷歌排名优化入门教程
  • 台州做微网站网络营销推广方案范文
  • 长宁网站建设seo渠道
  • 做网站用什么源码最好如何优化网站首页
  • 怎么样网站开源seo为什么要进行外部优化
  • 北京做网站公司有哪些百度搜索排名怎么靠前
  • shopify做国内网站咸阳网站建设公司
  • 论坛网站开发教程网络营销模式有哪些
  • 中国平安网站建设深圳货拉拉
  • 做网站用的背景图微信营销号
  • 吉林松原疫情最新消息seo查询网站是什么
  • 青锐成长计划网站开发人员菏泽资深seo报价
  • 微信公众号微网站建设sem竞价推广代运营
  • 网站建设佛网店运营推广中级实训
  • 工信部网站备案修改公众号推广合作平台
  • web界面模板深圳优化公司义高粱seo
  • 单页网站怎么制作山东seo多少钱
  • 公司网站搜索优化链接购买平台
  • 请人做网站要多少钱最新的销售平台
  • 微信模板图片东莞优化seo
  • 推广公司的新产品英文深圳网站seo哪家快
  • 做电路设计的兼职网站推广普通话手抄报模板
  • 小程序开发天津seo诊断
  • 百度验证网站软文有哪些发布平台
  • 网络科技公司劳动合同天津seo数据监控
  • 天水网站建设博客百度推广代理怎么加盟
  • 做网站 租服务器吗代做seo关键词排名
  • 如何把qq音乐导入到wordpressseo诊断报告
  • 正规制作网站公司哪家好天津网络推广seo
  • 免费解析网站制作亚马逊alexa