10pts求助
查看原帖
10pts求助
551630
Lemon_zqp楼主2024/6/10 18:29
#include<bits/stdc++.h>
#define int long long
const int mod = 1e9 + 7;
using namespace std;

int n, m, deg[100005], g[10005][10005];
stack<int> S;

void dfs(int u){
	for(int v = 1; v <= n; v++){
		if(g[u][v]){
			--g[u][v];
			--g[v][u];
			dfs(v);
		}
	}
	S.push(u);
}

signed main()
{
	cin >> n >> m;
	while(m--){
		int u, v;
		cin >> u >> v;
		++g[u][v];
		++g[v][u];
		++deg[u];
		++deg[v];
	}
	int s = -1;
	for(int i = 1; i <= n; i++){
		if(deg[i] % 2){
			s = i;
			break;
		}
	}
	if(s == -1){
		for(int i = 1; i <= n; i++){
			if(deg[i]){
				s = i;
				break;
			}
		}
	}
	dfs(s);
	while(!S.empty()){
		cout << S.top() << " ";
		S.pop();
	}
	return 0;
}
2024/6/10 18:29
加载中...