POI - Spies

Author: Benjamin Qi

Table of Contents


Edit on Github

Same thing as "Tree Matching" but on a functional graph. We can use the same greedy strategy of repeatedly matching a leaf to an adjacent vertex.

MLE:

int n, spy[MX];
bool vis[MX], used[MX];
vi adj[MX];
int sum;
void dfs(int x) {
vis[x] = 1;
trav(t,adj[x]) if (!vis[t]) {
dfs(t);

OK:

int n, spy[MX], ST[MX], EN[MX], adj[MX];
bitset<MX> vis, used;
int sum;
void dfs(int _) {
vi st{_};
while (sz(st)) {
int x = st.bk; vis[x] = 1;
if (ST[x] == EN[x]) {

Give Us Feedback on POI - Spies!