Guest User

Untitled

a guest
Oct 21st, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. /*input
  2. 1
  3. 4 2
  4. 1 2
  5. 2 3
  6. 3 4
  7. */
  8. #include<bits/stdc++.h>
  9. #include <ext/pb_ds/assoc_container.hpp>
  10. #include <ext/pb_ds/tree_policy.hpp>
  11. using namespace std;
  12. using namespace __gnu_pbds;
  13.  
  14. #define int long long
  15. #define double long double
  16. #define f first
  17. #define s second
  18. #define mp make_pair
  19. #define pb push_back
  20.  
  21. #define RE(i,n) for (int i = 1; i <= n; i++)
  22. #define RED(i,n) for (int i = n; i > 0; i--)
  23. #define REPS(i,n) for(int i = 1; (i*i) <= n; i++)
  24. #define REP(i,n) for (int i = 0; i < (int)n; i++)
  25. #define FOR(i,a,b) for (int i = a; i < b; i++)
  26. #define REPD(i,n) for (int i = n-1; i >= 0; i--)
  27. #define FORD(i,a,b) for (int i = a; i >= b; i--)
  28.  
  29. #define all(v) v.begin(),v.end()
  30. #define pii pair<int,int>
  31. #define vi vector<int>
  32. #define vvi vector<vi>
  33. #define print(arr) for (auto it = arr.begin(); it != arr.end(); ++it) cout << *it << " "; cout << endl;
  34. #define debug(x) cout << x << endl;
  35. #define debug2(x,y) cout << x << " " << y << endl;
  36. #define debug3(x,y,z) cout << x << " " << y << " " << z << endl;
  37.  
  38. typedef tree<
  39. int,
  40. null_type,
  41. less<int>,
  42. rb_tree_tag,
  43. tree_order_statistics_node_update>
  44. ordered_set;
  45.  
  46. const int INF = 1e18+1;
  47. const int MOD = 1e9+7;
  48. const double PI = 3.14159265358979323846264338;
  49.  
  50. int raise(int a,int n,int m = MOD){
  51. if(n == 0)return 1;
  52. if(n == 1)return a;
  53. int x = 1;
  54. x *= raise(a,n/2,m);
  55. x %= m;
  56. x *= x;
  57. x %= m;
  58. if(n%2)x*= a;
  59. x %= m;
  60. return x;
  61. }
  62.  
  63. int floor1(int n,int k){
  64. if(n%k == 0 || n >= 0)return n/k;
  65. return (n/k)-1;
  66. }
  67.  
  68. int ceil1(int n,int k){
  69. return floor1(n+k-1,k);
  70. }
  71.  
  72. const int N = 5e5+1;
  73. int le[N];
  74. vector<int> adj[N];
  75. int n;
  76. int k;
  77. int vis = 0;
  78.  
  79. void dfs(int u,int p){
  80. //cout << u << endl;
  81. le[u] = 1;
  82. vis++;
  83. if(adj[u].size() == 1){
  84. le[u] = 1;
  85. }
  86. for(auto v:adj[u]){
  87. if(v == p)continue;
  88. dfs(v,u);
  89. le[u] = max(le[u],le[v]+1);
  90. }
  91. }
  92.  
  93. void solve(){
  94. cin >> n >> k;
  95. //assert(n < N and k <= n);
  96. RE(i,n){
  97. adj[i].clear();
  98. }
  99. RE(i,n-1){
  100. int a,b;cin >> a >> b;
  101. adj[a].pb(b);
  102. adj[b].pb(a);
  103. }
  104. dfs(1,1);
  105. int ans = 0;
  106. RE(i,n){
  107. if(le[i] <= k)ans++;
  108. }
  109. //cout << vis << endl;
  110. cout << ans << endl;
  111. }
  112.  
  113. signed main(){
  114. ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  115. //freopen("sub1final.txt","r",stdin);freopen("sub1finalout.txt","w",stdout);
  116. int t = 1;
  117. cin >> t;
  118. while(t--){
  119. solve();
  120. }
  121. return 0;
  122. }
Add Comment
Please, Sign In to add comment