这个代码能被hack吗
  • 板块灌水区
  • 楼主ivnilkkk
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/13 21:38
  • 上次更新2023/11/13 22:53:30
查看原帖
这个代码能被hack吗
1073341
ivnilkkk楼主2023/11/13 21:38

一道有关环的问题

#include <bits/stdc++.h>
using namespace std;

const int N = 1e5+10;
vector<int> G[N];
int n, u, v, x, vis[N];
bool t, f;
set<int> st;

void dfs(int p) {
	vis[p] = 1;
	for(auto i: G[p]) {
		if(vis[i] == 1) {
			t = 1;
			return;
		} else if(vis[i] == 0) {
			dfs(i);
		}
	}
	vis[p] = 2;
}

bool Cycle() {
	for(int i = 1; i <= n; i++) {
		if(vis[i] == 0) {
			dfs(i);
			if(t) {
				x = i;
				return true;
			}
		}
	}
	return false;
}

void find(int beg, int p) {
	if(p == beg && f) {
		for(auto i = st.begin(); i != st.end(); i++)
			printf("%d ", (*i));
		return;
	}
	f = 1;
	for(auto i: G[p]) {
		st.insert(i);
		find(beg, i);
		st.erase(i);
	}
}

int main() {
	scanf("%d", &n);
	for(int i = 1; i <= n; i++) {
		scanf("%d%d", &u, &v);
		G[u].push_back(v);
	}
	Cycle();
	find(x, 1);
	return 0;
}
2023/11/13 21:38
加载中...