Submission #720627

#TimeUsernameProblemLanguageResultExecution timeMemory
720627ToxtaqConnecting Supertrees (IOI20_supertrees)C++17
0 / 100
1 ms340 KiB
#ifndef SUPERTREES_H_INCLUDED #define SUPERTREES_H_INCLUDED #include "supertrees.h" #include<bits/stdc++.h> using namespace std; struct DSU{ vector<int>par; DSU(int n){ par.assign(n, -1); } int FindRep(int u){ if(par[u] < 0)return u; return par[u] = FindRep(par[u]); } void Union(int u, int v){ u = FindRep(u); v = FindRep(v); if(u == v)return; if(par[u] > par[v])swap(u, v); par[u] += par[v]; par[v] = u; } bool IsConnected(int u, int v){ u = FindRep(u); v = FindRep(v); return (u == v); } }; void build(vector<vector<int>>b); int construct(vector<vector<int>>p){ int n = p.size(); DSU dsu1(n); vector<vector<int>>b(n, vector<int>(n)); for(int i = 0;i < n;++i){ for(int j = 0;j < n;++j){ if(p[i][j] && i != j){ dsu1.Union(i, j); b[i][j] = 1; b[j][i] = 1; } } } for(int i = 0;i < n;++i){ for(int j = 0;j < n;++j){ if(i != j && !p[i][j] && dsu1.IsConnected(i, j))return 0; } } build(b); return 1; } #endif // SUPERTREES_H_INCLUDED
#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...