诡异MLE

P1746 离开中山路

玄二关
by xXyhhyhhXX @ 2024-06-29 11:42:18


@[xXyhhyhhXX](/user/742071) ```cpp #include <iostream> #include <queue> using namespace std; struct Point { int x, y, step; }; int s[4][2] = {{1, 0}, {0, 1}, {0, -1}, {-1, 0}}; Point tPoint(int x, int y, int step) { Point a; a.x = x; a.y = y; a.step = step; return a; } queue<Point> list; bool map[1005][1005]; int x1, y1, x2, y2, n; int main() { cin >> n; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { char c; cin >> c; if (c == '0') { map[i][j] = 1; } } } cin >> x1 >> y1 >> x2 >> y2; list.push(tPoint(x1 - 1, y1 - 1, 0)); while (!list.empty()) { Point t = list.front(); list.pop(); // map[t.x][t.y]=0; //cout<<t.x<<" "<<t.y<<" "<<t.step<<endl; if ((t.x == x2 - 1) && (t.y == y2 - 1)) { cout << t.step << endl; return 0; } for (int i = 0; i < 4; i++) { int px = t.x + s[i][0], py = t.y + s[i][1]; if ((px < n && px >= 0 && py < n && py >= 0) && map[px][py]) {//用&& list.push(tPoint(px, py, t.step + 1)); map[px][py] = 0;//在这就改成0 } } //cout<<list.size()<<endl; } return 0; } ```
by wangzhongqian @ 2024-06-29 12:28:06


@[xXyhhyhhXX](/user/742071) 加个 `vis[1024][1024]` 判断走没走过,走过的节点就不走了。
by yx666 @ 2024-06-29 12:42:19


@[wangzhongqian](/user/1298242) thx,已关
by xXyhhyhhXX @ 2024-06-29 19:48:13


@[yx666](/user/825020) thx,已关
by xXyhhyhhXX @ 2024-06-29 19:48:31


|