1 条题解
-
0
思路
单位代价四向最短路,结果按格数计入起终点。
参考程序(C++11)
#include <bits/stdc++.h> using namespace std; int main(){int r,c;cin>>r>>c;vector<string>a(r);for(auto &s:a)cin>>s;queue<pair<int,int>>q;q.push({0,0});vector<vector<int>>d(r,vector<int>(c,-1));d[0][0]=1;int dx[]={1,-1,0,0},dy[]={0,0,1,-1};while(!q.empty()){auto p=q.front();q.pop();for(int k=0;k<4;k++){int x=p.first+dx[k],y=p.second+dy[k];if(x>=0&&x<r&&y>=0&&y<c&&a[x][y]=='.'&&d[x][y]<0){d[x][y]=d[p.first][p.second]+1;q.push({x,y});}}}cout<<d[r-1][c-1]<<'\n';}
- 1