求助,我的BFS哪里出了问题?

P5908 猫猫和企鹅

```cpp #include<iostream> #include<cstring> #include<queue> using namespace std; const int N = 1e5 + 10; int h[N], e[N], ne[N], idx, n, d,res; bool f[N]; queue<int> que; void connec(int x, int y) { e[idx] = y; ne[idx] = h[x]; h[x] = idx++; return; } void dfs(int cur,int v) { if (v == d||f[cur]) return; f[cur] = 1; for (int i = h[cur]; i != -1; i = ne[i]) { int index_ = e[i]; if (f[index_] == 0)res++, dfs(index_, v +1); } return; } int main() { memset(h, -1, sizeof h); cin >> n >> d; for (int i = 1; i < n; i++) { int x, y; cin >> x >> y; connec(x, y); connec(y, x); } if (d == 0) { cout << 0 << endl; return 0; } dfs(1,0); cout << res << endl; return 0; } ``` 我的dfs20分做法
by Man_CCNU @ 2021-12-07 16:00:18


|