제출 #823086

#제출 시각아이디문제언어결과실행 시간메모리
823086Sohsoh84슈퍼트리 잇기 (IOI20_supertrees)C++17
0 / 100
1 ms304 KiB
#include "supertrees.h" #include <bits/stdc++.h> using namespace std; const int MAXN = 1e5 + 10; int f[MAXN], sz[MAXN], L[MAXN]; int construct(vector<vector<int>> p) { int n = p.size(); vector<vector<int>> answer; for (int i = 0; i < n; i++) { vector<int> row; row.resize(n, 0); answer.push_back(row); } for (int i = 1; i < n; i++) { int lst = i; for (int j = 0; j < i; j++) if (p[i][j]) if (lst == i) lst = j; f[i] = i; f[i] = f[lst]; L[f[i]] = i; sz[f[i]]++; if (lst < i) answer[i][lst] = answer[lst][i] = 1; } for (int i = 0; i < n; i++) for (int j = i + 1; j < n; j++) if ((p[i][j] > 0) ^ (f[i] == f[j])) return 0; for (int i = 0; i < n; i++) { if (sz[i] == 2) return 0; if (sz[i] > 2) answer[L[i]][i] = answer[i][L[i]] = 1; } build(answer); return 1; }
#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...