ABA ABA
2026-08-04 19:35:07
发布于:湖北
3阅读
0回复
0点赞
#include <iostream>
#include <queue>
using namespace std;
int n, x, y;
vector<int> g[105];
bool cond;
int d[105];
bool vis[105];
queue<int> q;
void into_new(int order)
{
q.push(order);
vis[order] = true;
}
void bfs() {
into_new(x);
while (!q.empty()) {
int now = q.front();
q.pop();
if (now == y) return;
for (int neighbour : g[now]) {
if (vis[neighbour]) continue;
else {
into_new(neighbour);
d[neighbour] = d[now] + 1;
}
}
}
}
int main() {
cin >> n >> x >> y;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
cin >> cond;
if (cond) {
g[i].push_back(j);
}
}
}
bfs();
cout << d[y] - 1 << endl;
return 0;
}
这里空空如也





有帮助,赞一个