1 solutions
-
0
#include<bits/stdc++.h> using namespace std; const int N=100010; vector<int> g[N]; //g[x]储存x的所有边 int n,d,ans=0; void dfs(int u,int fa,int dep) //当前遍历到u节点,u的父亲是fa,深度是dep { if(dep<=d) //满足要求 { ans++; } for(auto j:g[u]) //访问u的所有孩子节点 { if(j==fa) continue; //往回访问 dfs(j,u,dep+1); } } int main() { cin>>n>>d; for(int i=1;i<n;i++) { int a,b; cin>>a>>b; g[a].push_back(b); //a可以走到b g[b].push_back(a); //b可以走到a } dfs(1,-1,0);//1号点的父亲是-1(不存在),当前深度是0 cout<<ans-1; return 0; }
Information
- ID
- 1030
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 16
- Accepted
- 4
- Uploaded By