제출 #249464

#제출 시각아이디문제언어결과실행 시간메모리
249464dwscMeetings (JOI19_meetings)C++14
29 / 100
3087 ms2936 KiB
#include <bits/stdc++.h>
#include "meetings.h"
using namespace std;
int lca[310][310];
int depth[310];
set<int> subtree[310];
void dfs(int u){
    //cout << u << "hi\n";
    for (auto it = subtree[u].begin(); it != subtree[u].end(); ++it){
        int v = *it;
        if (depth[v] == depth[u]+1){
            //cout << u << " " << v << "hi\n";
            Bridge(min(u,v),max(u,v));
            dfs(v);
        }
    }
}
void Solve(int N) {
    for (int i = 0; i < N; i++){
        for (int j = 0; j < N; j++){
            if (i == j) lca[i][j] = i;
            else if (i == 0 || j == 0) lca[i][j] = 0;
            else lca[i][j] = Query(0,i,j);
        }
    }
    for (int i = 0; i < N; i++){
        for (int j = 0; j < N; j++){
            if (i == j) continue;
            if (lca[i][j] == i){
                depth[j]++;
                subtree[i].insert(j);
            }
        }
    }
    dfs(0);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...