bfs 今天比赛的时候sb了好久不用bfs都忘记了。。。自己越来越水了。。。
#include <algorithm> #include <iostream> #include <cstring> #include <cstdio> #include <vector> #define INF 1000000007 using std::vector; using std::endl; using std::cout; int n,m; int dp[100002]; int vis[100003]; int main() { int t; scanf("%d",&t); while(t--) { scanf("%d %d",&n,&m); vector<int> q[100002]; int a,b; for(int i=0; i<n-1; i++) { scanf("%d %d",&a,&b); q[a].push_back(b); } int rear=0,front=1; vis[rear]=0; dp[0]=0; while(rear<front) { int nx=vis[rear++]; for(int i=0; i<q[nx].size(); i++) { vis[front++]=q[nx][i]; dp[q[nx][i]]=dp[nx]+1; } } int ans=0; for(int i=0; i<n; i++) if(dp[i]>m) ans++; cout << ans << endl; } return 0; }