// 被嗆,我本來以為每棵樹
#include <bits/stdc++.h>
#include "grader.h"
using namespace std;
// int query(vector < int > islands);
int n;
vector<int> es[555], v;
void dfs (int i, int par) {
v.push_back(i);
for (int j : es[i]) if (j != par) dfs (j, i);
}
int findEgg (int N, vector < pair < int, int > > bridges) {
n = N;
v.clear();
for (int i = 0; i <= N; i++) es[i].clear();
for (auto [a, b] : bridges) {
es[a].push_back(b);
es[b].push_back(a);
}
dfs (1,1);
int l = 0, r = n-1;
while (l < r) {
int mid = (l+r) / 2;
vector<int> a;
for (int i = 0; i <= mid; i++) a.push_back(v[i]);
if (query(a)) r = mid;
else l = mid+1;
}
// cout << l << '\n';
return v[l];
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |