这题只需要从起点走到终点,所以选择bfs; #include<bits/stdc++.h> using namespace std; int n,m,sx,sy,tx,ty; int mp[1010][1010],vis[1000010],pre[1010][1010];//pre数组存放(x,y),(dx,dy)是由(x,y)转移过来的 int d[4][2]={{1,0},{0,1},{0,-1},{-1,0}}; bool bfs() { queue<int> q; q.push(sx*m+sy); vis[sx*m+sy]=1; ...