解题思路:
注意事项:
参考代码:
#include <iostream> #include <vector> #include <cstring> using namespace std; vector<int> V[1005]; int n, m; bool vis[1005]; int num[1005]; int path; int way[1005]; void dfs(int u, int v, int id) { vis[u] = true; way[id] = u; if (u == v) { path++; for (int i = 0; i <= id; i++) { num[way[i]]++; } return; } for (int i = 0; i < V[u].size(); i++) { if (vis[V[u][i]]) continue; dfs(V[u][i], v, id + 1); vis[V[u][i]] = false; } } int main() { while (cin >> n >> m) { for (int i = 0; i < 1005; i++) { V[i].clear(); vis[i] = false; num[i] = 0; way[i] = 0; } path = 0; int u, v; for (int i = 1; i <= m; i++) { cin >> u >> v; V[u].push_back(v); V[v].push_back(u); } cin >> u >> v; int res = 0; dfs(u, v, 0); for (int i = 1; i <= n; i++) { if (num[i] == path) { res++; } } if (path) { cout << res - 2 << endl; } else { cout << -1 << endl; } } return 0; }
0.0分
0 人评分
2^k进制数 (C++代码)使用递归方法浏览:736 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:606 |
wu-淘淘的名单 (C++代码)浏览:1532 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:503 |
P1000 (C语言代码)浏览:911 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:590 |
C语言训练-自守数问题 (C语言代码)浏览:798 |
敲七 (C语言代码)浏览:2747 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:505 |
老王赛马 (C++代码)浏览:973 |