제출 #1332459

#제출 시각아이디문제언어결과실행 시간메모리
1332459aren_dance9월 (APIO24_september)C++20
45 / 100
110 ms12984 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N=2e5+100;
vector<int> g[N];
vector<int> f1;
int sz[N];
void dfs(int v){
    sz[v]=f1[v];
    for(auto i:g[v]){
        dfs(i);
        sz[v]=max(sz[v],sz[i]);
    }
}
int solve(int n, int m, std::vector<int> f,
std::vector<std::vector<int>> s){
    for(int i=0;i<=n;++i){
        g[i].clear();
    }
    for(int i=1;i<n;++i){
        g[f[i]].push_back(i);
    }
    f1.clear();
    f1.resize(n+1);
    for(int i=0;i<s[0].size();++i){
        f1[s[0][i]]=i;
    }
    dfs(0);
    int day=0;
    int last_mx=0;
    for(int i=0;i<s[0].size();++i){
        last_mx=max(last_mx,sz[s[0][i]]);
        if(last_mx==i){
            day++;
        }
    }
    return day;
}
#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...