hdu 4707 dfs+前向星

来源:互联网 发布:不可思议迷宫 知乎 编辑:程序博客网 时间:2024/06/05 16:34



#include<stdio.h>#include<string.h>#include<iostream>using namespace std;struct node{    int to,next;}A[100010];int list[100010];int tot,n,d;int deal(int a,int b){    A[++tot].to=b;    A[tot].next=list[a];    list[a]=tot;    return 0;    }int dfs(int a,int t){    if(t>=d) return 1;    int i,sum=1;    for(i=list[a];i>=0;i=A[i].next)    {        int k=A[i].to;        sum+=dfs(k,t+1);        }        return sum;}int main(){    int T,i,j,a,b;    scanf("%d",&T);    while(T--)    {        scanf("%d%d",&n,&d);        tot=1;        memset(list,-1,sizeof(list));        for(i=1;i<n;i++)        {            scanf("%d%d",&a,&b);            deal(a,b);        }        int k=dfs(0,0);        printf("%d\n",n-k);    }    return 0;}

0 0