Submission #998270

#TimeUsernameProblemLanguageResultExecution timeMemory
998270WarinchaiSeptember (APIO24_september)C++17
100 / 100
120 ms10956 KiB
#include "september.h" #include<bits/stdc++.h> using namespace std; int rem=0; struct tree{ vector<int>adj[100005]; int vis[100005]; void dfs_add(int u,int p=-1){ if(vis[u])return; vis[u]=1; rem++; for(auto v:adj[u])dfs_add(v,u); } void clear(int n,int m){ for(int i=0;i<=n;i++)adj[i].clear(); for(int j=0;j<n;j++)vis[j]=0; } }tr; int solve(int N, int M, vector<int> F, vector<vector<int>> S) { rem=0; for(int i=0;i<M;i++)tr.clear(N,M); for(int j=1;j<N;j++){ tr.adj[F[j]].push_back(j); } int ans=0; for(int i=0;i<N-1;i++){ for(int j=0;j<M;j++){ //cerr<<S[j][i]<<"\n"; tr.dfs_add(S[j][i]); //cerr<<"work\n"; } rem--; if(rem==0)ans++; //cerr<<"rem:"<<rem<<"\n"; } 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...