제출 #1241390

#제출 시각아이디문제언어결과실행 시간메모리
1241390dosts참나무 (IOI23_beechtree)C++20
0 / 100
3 ms6472 KiB
#include "beechtree.h" #include <bits/stdc++.h> //#define int long long #define pii pair<int,int> #define vi vector<int> #define ff first #define ss second #define sp << " " << #define all(x) x.begin(),x.end() using namespace std; const int LIM = 2e5+1; vector<pii> edges[LIM]; vi ans(LIM,0),C,P; int N; vi ctr(LIM,0); bool check(int node) { for (auto it : edges[node]) { ctr[it.ss] = 0; } for (auto it : edges[node]) { if (ctr[it.ss]) return false; ctr[it.ss]++; } if (node) return true; for (auto it : edges[node]) if (!check(it.ff)) return false; sort(all(edges[node]),[&](pii a,pii b) { return edges[a.ff].size() > edges[b.ff].size(); }); ctr.assign(N,0); for (int i = 0;i<N;i++) ctr[C[i]]++; for (int i = 0;i<edges[node].size();i++) { for (auto it : edges[edges[node][i].ff]) { if (ctr[C[it.ff]] < i+1) return false; } } return true; } int dfs(int node) { for (auto it : edges[node]) dfs(it.ff); return ans[node] = check(node); } std::vector<int> beechtree(int N_, int M, std::vector<int> P_, std::vector<int> C_) { N = N_; P = P_,C = C_; ans.assign(N_,0); for (int i = 0;i<N;i++) edges[i].clear(); vi v; for (auto it : C) v.push_back(it); sort(all(v)); v.erase(unique(all(v)),v.end()); for (auto& it : C) it = lower_bound(all(v),it)-v.begin(); for (int i = 1;i<N;i++) { edges[P[i]].push_back({i,C[i]}); } dfs(0); return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...