Submission #249462

#TimeUsernameProblemLanguageResultExecution timeMemory
249462dwscMeetings (JOI19_meetings)C++14
0 / 100
3066 ms1016 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(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...