Submission #585987

#TimeUsernameProblemLanguageResultExecution timeMemory
585987serizeConnecting Supertrees (IOI20_supertrees)C++17
0 / 100
1 ms340 KiB
#include "supertrees.h" #include<bits/stdc++.h> using namespace std; const int MAX = 1002; int link[MAX]; inline int seek(int x){ if(x == link[x]) return x; return link[x] = seek(link[x]); } int construct(std::vector<std::vector<int>> p) { int n = p.size(); std::vector<std::vector<int>> answer; for(int i = 0; i < n; i++) link[i] = i; int f = 0; for(auto i: p){ int a = seek(f); for(int j = 0; j < n; j++){ if(i[j] == 1){ int b = seek(j); link[b] = a; } } f++; } for(int i = 0; i < n; i++) cout << link[i] << " "; cout << "\n"; vector<int> cc[MAX]; for(int i = 0; i < n; i++){ cc[ link[i] ].push_back(i); } int mat[n+1][n+1]; memset(mat,0,sizeof(mat)); for(int i = 0; i < n; i++){ int sz = (int)(cc[i].size()); for(int j = 0; j < sz-1; j++){ mat[ cc[i][j] ][ cc[i][j+1] ] = 1; mat[ cc[i][j+1] ][ cc[i][j] ] = 1; } } for(int i = 0; i < n; i++){ vector<int> asd; for(int j = 0; j < n; j++){ asd.push_back(mat[i][j]); } answer.push_back(asd); } 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...