标签:
1 /*待优化*/ 2 #include<cstdio> 3 #include<cstring> 4 #include<vector> 5 using namespace std; 6 7 const int maxn=100005; 8 vector<int>v[maxn]; 9 int cnt,n,d; 10 int vis[maxn]; 11 12 void dfs(int t,int disc) 13 { 14 if(disc>d) 15 return; 16 vis[t]=1; 17 cnt++; 18 for(int i=0;i<v[t].size();i++) 19 if(!vis[v[t][i]]) 20 dfs(v[t][i],disc+1); 21 } 22 23 int main() 24 { 25 int i,t; 26 scanf("%d",&t); 27 while(t--) 28 { 29 memset(vis,0,sizeof(vis)); 30 cnt=0; 31 for(i=0;i<n;i++) 32 v[i].clear(); 33 scanf("%d%d",&n,&d); 34 for(i=0;i<n-1;i++) 35 { 36 int x,y; 37 scanf("%d%d",&x,&y); 38 v[x].push_back(y); 39 v[y].push_back(x); 40 } 41 dfs(0,0); 42 printf("%d\n",n-cnt); 43 } 44 }
标签:
原文地址:http://www.cnblogs.com/homura/p/4703506.html