Pet

来源:互联网 发布:2016全球互联网数据 编辑:程序博客网 时间:2024/04/30 07:52

一个基础的图,dfs就好了,找出距离超过d的就行,因为在d范围内并没有捕捉到小仓鼠。

#include<cstdio>#include<cstdlib>#include<algorithm>#include<vector>using namespace std;vector<int>m[100005];int vis[100005];int sum,dis;void dfs(int x,int d){     vis[x]=1;     if(d>dis)sum++;     if(m[x].size()==1){         return;     }     for(int i=0;i<m[x].size();i++){         if(!vis[m[x][i]])dfs(m[x][i],d+1);     }}int main(){     int n,x,y,t;     scanf("%d",&t);     while(t--){         scanf("%d %d",&n,&dis);         memset(vis,0,sizeof(vis));         for(int i=0;i<n;i++)m[i].clear();         for(int i=0;i<n-1;i++){            scanf("%d %d",&x,&y);            m[y].push_back(x);            m[x].push_back(y);         }         sum=0;         dfs(0,0);         printf("%d\n",sum);     }     return 0;}


原创粉丝点击