hdu 4707 Pet(DFS水过)

时间:2023-04-14 11:53:26

http://acm.hdu.edu.cn/showproblem.php?pid=4707

【题目大意】:

Lin Ji 的宠物鼠丢了,在校园里寻找,已知Lin Ji 在0的位置,输入N D,N表示校园中点的个数,D表示宠物鼠不可能在距离D之内,接下来N-1行,输入x,y,表示x与y相邻,(相邻两点之间的距离为1,不相邻为inf),不存在环结构。

【题解】:

用邻接表存储树形结构,然后用DFS遍历图

【code】:

 #include <iostream>
#include <stdio.h>
#include <string.h>
#include <vector> using namespace std;
#define NN 100010 struct Nod
{
int b,dis;
}tnd; vector<Nod> G[NN];
int ans; void dfs(int s,int dis)
{
int i;
if(dis<) ans++;
for(i=;i<G[s].size();i++)
{
int id = G[s][i].b;
dfs(id,dis-);
}
} int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n,d;
scanf("%d%d",&n,&d);
int i;
ans = ;
for(i=;i<n;i++)
{
G[i].clear();
}
for(i=;i<n-;i++)
{
int a,b;
scanf("%d%d",&a,&b);
tnd.b = b;
tnd.dis = ;
G[a].push_back(tnd);
}
dfs(,d);
printf("%d\n",ans);
}
return ;
}