제출 #1203789

#제출 시각아이디문제언어결과실행 시간메모리
1203789LucaIlieIsland Hopping (JOI24_island)C++20
2 / 100
2 ms508 KiB
#include "island.h" #include <bits/stdc++.h> using namespace std; const int MAX_N = 300; bool isEdge[MAX_N + 1][MAX_N + 1]; int parent[MAX_N + 1]; int comp; int findParent(int x) { if (parent[x] == x) return x; parent[x] = findParent(parent[x]); return parent[x]; } bool connected(int u, int v) { return findParent(u) == findParent(v); } void connect(int u, int v) { u = findParent(u); v = findParent(v); if (u == v) return; comp--; parent[u] = v; } void solve(int n, int l) { vector<int> cand; for (int i = 1; i <= n; i++) { cand.push_back(i); parent[i] = i; } int round = 1; comp = n; while (round < n && comp > 1 && !cand.empty()) { vector<int> newCand; for (int u: cand) { int v = query(u, round); // if (!isEdge[u][v] && connected(u, v)) // continue; isEdge[u][v] = isEdge[v][u] = true; connect(u, v); newCand.push_back(v); } round++; } for (int u = 1; u <= n; u++) { for (int v = u + 1; v <= n; v++) { if (isEdge[u][v]) { answer(u, v); } } } }
#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...