题目描述
blablabla
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
比较高,但鉴于数据较小,故影响不大
参考文献
C++ 代码
#include<iostream>
#include<queue>
using namespace std;
int n,m,mp[105][105];
bool vis[105][105];
int xxx[]={1,0,-1,0};
int yyy[]={0,1,0,-1};
struct node{
int x;
int y;
int step;
};
queue<node>q;
void bfs(){
q.push((node){1,1,0});
while(!q.empty()){
node xx=q.front();
if(xx.x==n&&xx.y==m){
cout<<xx.step<<endl;
}
for(int i=0;i<4;i++){
int tx=xx.x+xxx[i];
int ty=xx.y+yyy[i];
if(tx>=1&&tx<=n&&ty>=1&&ty<=m&&mp[tx][ty]!=1&&!vis[tx][ty]){
q.push((node){tx,ty,xx.step+1});
vis[tx][ty]=true;
}
}
q.pop();
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>mp[i][j];
}
}
bfs();
return 0;
}