제출 #1260683

#제출 시각아이디문제언어결과실행 시간메모리
1260683DangKhoizzzzCat in a tree (BOI17_catinatree)C++20
0 / 100
3 ms7496 KiB
#include <bits/stdc++.h> #define ll long long using namespace std; const int maxn = 3e5 + 7; int n, D, d[2005][2005]; vector <int> g[maxn]; vector <int> chosen; void dfs_ans(int u, int p) { for(int v: g[u]) { if(v == p) continue; dfs_ans(v, u); } bool add = true; for(int node: chosen) { if(d[node][u] < D) add = false; } if(add) chosen.push_back(u); } void dfs(int u , int p , int root , int h) { d[root][u] = h; for(int v: g[u]) { if(v == p) continue; dfs(v , u , root , h+1); } } void solve() { cin >> n >> D; for(int i = 1; i < n; i++) { int v; cin >> v; g[i+1].push_back(v+1); g[v+1].push_back(i+1); } for(int i = 1; i <= n; i++) { dfs(i , i , i , 0); } dfs_ans(1 , 1); cout << chosen.size() << '\n'; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...