제출 #732757

#제출 시각아이디문제언어결과실행 시간메모리
732757raul2008487슈퍼트리 잇기 (IOI20_supertrees)C++17
11 / 100
197 ms26100 KiB
#include "supertrees.h" #include<algorithm> #include <vector> std::vector<std::vector<int>> ans; std::vector<bool> vis; std::vector<std::vector<int>> dp; void dfs(int i, int j, int n){ vis[j]=1; for(int k1=0;k1<n;k1++){ if(dp[j][k1] && !vis[k1]){ ans[j][k1]=ans[k1][j]=1; dfs(j,k1,n); } } } int construct(std::vector<std::vector<int>> p) { int n = p.size(); vis.resize(n,false); for(int i=0;i<n;i++){ std::vector<int> row; row.resize(n,0); ans.push_back(row); } for(int i=0;i<n;i++){ std::vector<int> d; for(int j=0;j<n;j++){ d.push_back(p[i][j]); } dp.push_back(d); } for (int i = 0; i < n; i++) { if(!vis[i]){ vis[i]=1; for(int j=i+1;j<n;j++){ if(p[i][j] && !vis[j]){ ans[i][j]=ans[j][i]=1; dfs(i,j,n); } } } } build(ans); 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...