首页 > 其他 > 详细

hdu 4707 dfs+前向星

时间:2015-01-17 11:15:20      阅读:209      评论:0      收藏:0      [点我收藏+]



#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;
}

hdu 4707 dfs+前向星

原文:http://blog.csdn.net/zxf654073270/article/details/42803755

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!