1 条题解
-
0
C++ :
#include <bits/stdc++.h> int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int n, m, a, b; std::cin >> n >> m >> a >> b; std::vector<int> v(n); for (auto &i : v) std::cin >> i; std::vector<std::vector<int>> chg(n); for (int x, y; m; --m) { std::cin >> x >> y; chg[x].push_back(y); } std::vector<int> f(n, 1100000000); f[a] = 0; std::queue<int> Q; for (Q.push(a); !Q.empty(); Q.pop()) { int u = Q.front(); for (auto v : chg[u]) { if (f[v] > f[u] + 1) { f[v] = f[u] + 1; Q.push(v); } } } if (f[b] == 1100000000) { std::cout << "No solution\n"; } else { std::cout << f[b] + v[b] - v[a] << std::endl; } }
- 1
信息
- ID
- 5632
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者