제출 #1194151

#제출 시각아이디문제언어결과실행 시간메모리
1194151zh_hSeptember (APIO24_september)C++20
100 / 100
117 ms15552 KiB
#include <bits/stdc++.h> #define pb push_back #define lint long long int using namespace std; vector<int> mx; vector<vector<int>> edge; void dfs(int v) { for (auto i : edge[v]) { dfs(i); mx[v] = max(mx[v], mx[i]); } } int solve (int n, int m, vector<int> parent, vector<vector<int>> s) { edge.clear(); edge.resize(n); for (int i = 1; i < n; i ++) { edge[parent[i]].pb(i); } mx.clear(); mx.resize(n, -1); for (int i = 0; i < m; i ++) { for (int j = 0; j < n-1; j ++) { mx[s[i][j]] = max(mx[s[i][j]], j); } } dfs(0); int cur_mx = 0; int cur_i = 0; int ans = 0; while (cur_i < n-1) { ans ++; cur_mx = cur_i; while (cur_i <= cur_mx && cur_i < n-1) { cur_mx = max(cur_mx, mx[s[0][cur_i]]); cur_i ++; } } 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...