hdu 4707 Pet hdu 2013 Asia Regional Online —— Warmup

时间:2023-03-08 19:59:17

  一道简单的搜索题目,建一个树,根节点是 0 ,连接的两个节点的距离是 1 ,求 到 根节点长度是2的节点的个数。

 

#include<stdio.h>
#include<string.h> struct node{
int next,to;
int step;
};
node edge[];
int tot;
int head[];
int N,D,ans; void Add(int x,int y)
{
edge[tot].to=y;
edge[tot].next=head[x];
head[x]=tot++;
}
void DFS(int x,int step)
{
if(head[x]==-)
return ;
for(int i=head[x];i!=-;i=edge[i].next)
{
int y=edge[i].to;
edge[i].step=step+;
if(edge[i].step>D)
ans++;
DFS(y,edge[i].step);
}
}
int main()
{
int T;
int x,y;
scanf("%d",&T);
while(T--)
{
memset(head,-,sizeof(head));
memset(edge,,sizeof(edge));
ans=;
tot=;
scanf("%d%d",&N,&D);
for(int i=;i<N-;i++)
{
scanf("%d%d",&x,&y);
Add(x,y);
}
DFS(,);
printf("%d\n",ans);
}
return ;
}