全WA,DFS求助!

P5908 猫猫和企鹅

```cpp #include<bits/stdc++.h> using namespace std; #define long long ll const int MAXN=1e5+10; int n,d; struct edge { int u,v; int nxt; } edges[200010]; int cnt=0,head[200010]; int sum=0; bool vis[200010]; void add(int u,int v) { edges[++cnt].u=u; edges[cnt].v=v; edges[cnt].nxt=head[u]; head[u]=cnt; } void dfs(int u,int step) { if(step>d) { return; } for(int i=head[u]; i; i=edges[i].nxt) { if(!vis[edges[i].v]) { sum++; vis[edges[i].v]=1; dfs(edges[i].v,step+1); } } return; } int main() { cin>>n>>d; for(int i=1; i<n; i++) { int u,v; cin>>u>>v; add(u,v); } dfs(1,1); cout<<sum<<endl; return 0; } ``` 还是错的↑
by yimengxiao @ 2023-06-30 21:36:15


@[yimengxiao](/user/238361) 两个问题 1. 没有双向建边 1. 一开始没有标记 $1$ 被走过,回走回去
by VIOLET__FOREVER @ 2023-08-31 20:48:31


@[yimengxiao](/user/238361) 如果觉得我说的还不错的话,可否给个关注呀
by VIOLET__FOREVER @ 2023-08-31 20:49:02


@[VIOLET__FOREVER](/user/422387) 感谢orz
by yimengxiao @ 2023-09-02 20:11:11


|