제출 #390100

#제출 시각아이디문제언어결과실행 시간메모리
390100ioi슈퍼트리 잇기 (IOI20_supertrees)C++14
11 / 100
241 ms22092 KiB
#include "supertrees.h" #include <vector> #include<bits/stdc++.h> using namespace std ; const int N = 10000; int dsu[N] ; int findp(int u){ if(dsu[u] == u) return u ; return dsu[u] = findp(dsu[u]); } void connect(int u , int v){ u = findp(dsu[u]) , v = findp(dsu[v]); if(u == v)return ; dsu[u] = v ; } int construct(vector<std::vector<int>> p) { int n = p.size(); vector<std::vector<int>> answer; //ঠিক সেই ক্ষেত্রে p[i][j] = 1 for (int i = 0; i < n; i++) { dsu[i] = i ; vector<int> row (0 , 0); row.resize(n); answer.push_back(row); } for(int i = 0 ; i < n - 1; i ++) if(p[i][i + 1]){ answer[i][i + 1] = 1 , answer[i + 1][i] = 1 ; connect(i ,i + 1); } for(int i = 0 ; i < n ; i ++)dsu[i] = findp(dsu[i]); for(int i = 0 ; i < n ; i ++){ for(int j = 0 ; j < n ; j ++){ if(!p[i][j] && dsu[i] == dsu[j])return 0 ; } } 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...