C++ [输入]输入的第一行为四个整数 n,m,Sx,Sy 分别代表行数、列数和开始的坐标。接下来 n行,每行 2m 个整数。第 i行的第 2*j-1 和第 2*j个数为第i行第j列的“任务指引”。若两个“任务指引”数均为 0,则代表小蟒蚪找到了妈妈。这些数均为0~max{n,m}范围内的整数。 [输出]输出若干行,每行两个数 x,y,由空格分开,代表小蝌蚂经过了 (x,y)
时间: 2024-02-15 07:04:31 浏览: 54
好的,这个问题可以使用深度优先搜索(DFS)来解决。下面是代码实现:
```c++
#include <iostream>
using namespace std;
const int N = 110;
int n, m, sx, sy;
int a[N][2*N];
int vis[N][N];
void dfs(int x, int y) {
vis[x][y] = 1;
cout << x << " " << y << endl;
int nx = a[x][y*2-1], ny = a[x][y*2];
if (nx == 0 && ny == 0) return;
if (!vis[nx][ny]) dfs(nx, ny);
}
int main() {
cin >> n >> m >> sx >> sy;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= 2*m; j++) {
cin >> a[i][j];
}
}
dfs(sx, sy);
return 0;
}
```
输入格式为:
```
n m sx sy
a[1][1] a[1][2] ... a[1][2*m]
a[2][1] a[2][2] ... a[2][2*m]
...
a[n][1] a[n][2] ... a[n][2*m]
```
其中,第一行代表行数、列数和开始的坐标。接下来的 n 行每行有 2m 个整数,代表题目中的“任务指引”。
输出格式为:
```
x1 y1
x2 y2
...
```
其中,每行两个数 x 和 y,代表小蝌蚂经过了 (x,y)。
阅读全文