1 条题解
-
1
直接bfs即可。
定义 为在步数模3的余数为 的情况下,可不可以到达 号节点。#include<bits/stdc++.h> using namespace std; #define int long long const int N = 1e6 + 10; int n, m; vector<vector<int>> g(N); int s, t; int vis[N][4]; void bfs(int s){ queue<pair<int, int>> q; q.push({s, 0}); vis[s][0] = true; while(!q.empty()){ int u = q.front().first; int step = q.front().second; q.pop(); step++; for(auto v : g[u]){ if(vis[v][step % 3] == false){ vis[v][step % 3] = true; if(v == t && step % 3 == 0){ cout << step / 3; exit(0); } q.push({v, step}); } } } } signed main(){ cin >> n >> m; for(int i = 1;i <= m;i++){ int u, v; cin >> u >> v; g[u].push_back(v); } cin >> s >> t; bfs(s); cout << -1; return 0; }
信息
- ID
- 1738
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 提高
- 标签
- 递交数
- 2
- 通过
- 2
- 上传者