| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1368490 | idonoam | 9월 (APIO24_september) | C++17 | 0 ms | 344 KiB |
#include "september.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S)
{
vector<vector<int>> sons(N);
for (int i = 1; i < N; i++)
{
sons[F[i]].push_back(i);
}
vector<int> vis(N, 0);
int op = 0, z = 0;
for (int i = 0; i < N - 1; i++)
{
if (!z)
op++;
for (int k = 0; k < M; k++)
{
if (vis[S[k][i]])
{
vis[S[k][i]]--;
if (!vis[S[k][i]])
z--;
}
else
{
vis[S[k][i]] = true;
stack<int> st;
st.push(S[k][i]);
while (st.size())
{
int c = st.top();
st.pop();
vis[c] = M;
z++;
for (int j = 0; j < sons[c].size(); j++)
{
if (!vis[sons[c][j]])
{
st.push(sons[c][j]);
}
}
}
vis[S[k][i]]--;
if (!vis[S[k][i]])
z--;
}
}
}
return op;
}
/*
void taskcase()
{
int N, M;
assert(2 == scanf("%d%d", &N, &M));
std::vector<int> F(N);
F[0] = -1;
for (int i = 1; i < N; ++i)
assert(1 == scanf("%d", &F[i]));
std::vector<std::vector<int>> S(M, std::vector<int>(N - 1));
for (int i = 0; i < M; ++i)
for (int j = 0; j < N - 1; ++j)
assert(1 == scanf("%d", &S[i][j]));
printf("%d\n", solve(N, M, F, S));
}
int main()
{
int T;
assert(1 == scanf("%d", &T));
while (T--)
taskcase();
return 0;
}
/*
1
3 1
0 0
1 2
1
5 2
0 0 1 1
1 2 3 4
4 1 2 3
*/| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
