@ 77Glorious
深度小于 $d$ 就可以拜访,这里不对,
还有根节点也会被遍历到,所以要输出 $ans-1$。
改了就ac了。
```
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
vector<int> g[maxn];
bool vis[maxn];
int n,d,ans;
void dfs(int x,int dis)
{
vis[x]=1;
if(dis<=d)
{
ans++;
if(dis==d) return;
}
for(int i=0;i<g[x].size();i++)
{
if(!vis[g[x][i]])//相通的没去过就去
dfs(g[x][i],dis+1);
}
}
int main()
{
cin>>n>>d;
int u,v;
for(int i=1;i<n;i++)
{
cin>>u>>v;
g[u].push_back(v);
g[v].push_back(u);
}
dfs(1,0);
cout<<ans-1;
}
```
by swww77 @ 2024-07-26 09:51:09