HDU - 4707 Pet(深搜求最短路適用於單執行緒問題)
阿新 • • 發佈:2018-11-16
https://vjudge.net/contest/270244#problem/N
此圖的結構並不複雜,而是一個點接一個點。
而且N (0<N<=100000)複雜度不使用DIJKSTR
#include<bits/stdc++.h> #define INF 0x3f3f3f3f using namespace std; int dis[100100]; vector<int>v[100100]; void dfs(int x) { int i; for(i=0;i<v[x].size();i++){ dis[v[x][i]]=dis[x]+1; dfs(v[x][i]); } return ; } int main() { int t; scanf("%d",&t); while(t--) { int n,d,i; scanf("%d%d",&n,&d); for(i=0; i<n; i++) v[i].clear(); for(i=0; i<n-1; i++) { int a,b; scanf("%d%d",&a,&b); v[a].push_back(b); } memset(dis,0,sizeof(dis)); dfs(0); int ans=0; for(i=0; i<n; i++) { if(dis[i]>d) ans++; } printf("%d\n",ans); } return 0; }