제출 #1193859

#제출 시각아이디문제언어결과실행 시간메모리
1193859hengliao9월 (APIO24_september)C++20
100 / 100
111 ms10688 KiB
#include "september.h" #include<bits/stdc++.h> using namespace std; #define F first #define S second #define pb push_back #define vll vector<ll> #define pll pair<ll, ll> typedef long long ll; namespace{ const ll mxN=1e5+5; vll adj[mxN]; bool visited[mxN]; set<ll> st; void dfs(ll cur){ if(visited[cur]) return; visited[cur]=1; // cout<<"visiting "<<cur<<'\n'; st.insert(cur); for(auto &chd:adj[cur]){ dfs(chd); } } } int solve(int n, int m, vector<int> p, vector<vector<int>> a) { st.clear(); for(ll i=0;i<n;i++){ adj[i].clear(); visited[i]=0; } for(ll i=1;i<n;i++){ adj[p[i]].pb(i); } ll ans=0; ll len=0; for(ll i=0;i<n-1;i++){ len++; // cout<<"i: "<<i<<'\n'; for(ll j=0;j<m;j++){ dfs(a[j][i]); } if((ll) st.size()==len){ ans++; // cout<<i<<'\n'; len=0; st.clear(); } } 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...