1 10 2 0 1 0 2 0 3 1 4 1 5 2 6 3 7 4 8 6 9
2
/*
Author:ZXPxx
Memory: 5904 KB		Time: 1201 MS
Language: C++		Result: Accepted
*/
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;
const int mx = 1e5 + 5;
vector<int> ma[mx];
int n, d, cnt;
bool vis[mx];
void dfs(int p, int deep) {
    if (deep > d)
        return;
    vis[p] = 1;
    cnt++;
    int len = ma[p].size();
    for(int i = 0; i < len; i++)
        if (!vis[ma[p][i]])
            dfs(ma[p][i], deep + 1);
}
int main() {
    int t, a, b;
    scanf("%d", &t);
    while (t--) {
        for(int i = 0; i < n; i++)
            ma[i].clear();
        memset(vis, 0, sizeof(vis));
        cnt = 0;
        scanf("%d%d", &n, &d);
        for(int i = 0; i < n-1; i++) {
            scanf("%d%d", &a, &b);
            ma[a].push_back(b);
            ma[b].push_back(a);
        }
        dfs(0, 0);
        printf("%d\n", n - cnt);
    }
    return 0;
}/*
Author:ZXPxx
Memory: 10108 KB		Time: 764 MS
Language: C++		Result: Accepted
*/
#include <cstdio>
#include <cstring>
#include <vector>
#define mx 100005
using namespace std;
vector<int> mp[mx];
int deep[mx*10],Que[mx];
void BFS(int s) {
    int v,temp,front=0,rear=1;
    memset(deep,-1,sizeof(deep));
    deep[s]=0;
    Que[front]=s;
    while(front<rear) {
        v=Que[front++];
        for(int i=0; i<mp[v].size(); ++i) {
            temp=mp[v][i];
            if(deep[temp]==-1) {
                deep[temp]=deep[v]+1;
                Que[rear++]=temp;
            }
        }
    }
}
int main() {
    int x,y,n,D,t;
    scanf("%d",&t);
    while(t--) {
        scanf("%d%d",&n,&D);
        for(int i=0; i<mx; ++i)
            mp[i].clear();
        for(int i=1; i<n; ++i) {
            scanf("%d%d",&x,&y);
            mp[x].push_back(y);
            mp[y].push_back(x);
        }
        BFS(0);
        int ans=0;
        for(int i=0; i<n; ++i) {
            if(deep[i]>D)
                ans++;
        }
        printf("%d\n",ans);
    }
    return 0;
}
/*
Author:ZXPxx
Memory: 2112 KB		Time: 577 MS
Language: C++		Result: Accepted
*/
#include<cstring>
#include<cstdio>
using namespace std;
const int mx=1e5+5;
int a[mx];
int main() {
    int t,n,d,x,y;;
    scanf("%d",&t);
    while(t--) {
        scanf("%d%d",&n,&d);
        memset(a,0,sizeof(a));
        for(int i=0; i<n-1; i++) {
            scanf("%d%d",&x,&y);
            a[y]=a[x]+1;
        }
        int ans=0;
        for(int i=0; i<n; i++)
            if(a[i]>d)
                ans++;
        printf("%d\n",ans);
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/zhang_xueping/article/details/47808453