Submission #736604

#TimeUsernameProblemLanguageResultExecution timeMemory
736604josanneo22Cat in a tree (BOI17_catinatree)C++17
0 / 100
1 ms340 KiB
#include<bits/stdc++.h> using namespace std; #define pb push_back const int maxn=2000; int n,d; vector<int> adj[maxn]; int vis[maxn],use[maxn]; void bfs(int u,int f,int cd){ if(vis[u]) return; vis[u]=1; if(cd==0){ use[u]=1; cd++; } else use[u]=0; for(auto&v:adj[u]){ if(v==f) continue; bfs(v,u,(cd+1)%d); } } int cal(int rt){ for(int i=0;i<n;i++){ vis[i]=0; use[i]=0; } bfs(rt,-1,0); int ret=0; for(int i=0;i<n;i++){ ret+=use[i]; } return ret; } void solve(){ cin>>n>>d; for(int i=0;i<n-1;i++){ int x; cin>>x; adj[x].pb(i+1); adj[i+1].pb(x); } int ans=-1; for(int i=0;i<=n-1;i++){ ans=max(ans,cal(i)); } cout<<ans<<'\n'; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...