站外题50pts求助(悬关)
  • 板块学术版
  • 楼主_Gabriel_
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/6/21 23:46
  • 上次更新2023/11/3 13:23:32
查看原帖
站外题50pts求助(悬关)
941502
_Gabriel_楼主2023/6/21 23:46

题目

代码:

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

typedef long long ll;
const int N = 1e3 + 30;

int g[N][N], ans[N][N];
int d[N];
int f, u, v;
int cnt[N];

int x = 0;
void dfs(int k) {
	for (int j = 1; j <= f; j++) {
		if (g[k][j] == 1) {
			g[k][j] = 0;
			g[j][k] = 0;
			dfs(j);
		}
	}
    cnt[++x] = k;
}

int main() {
	cin >> f;
	for (int i = 1; i <= f; i++) {
		cin >> u >> v;
		g[u][v] = 1;
		g[v][u] = 1;
		d[u]++;
		d[v]++;
	}
	int s = 1;
	for (int i = 1; i <= f; i++) {
		if (d[i] % 2 == 1) {
			s = i;
			break;
		}
	}
	dfs(s);
    for (int i = x; i >= 1; i--) {
        if (cnt[i] != 0) {
        	cout << cnt[i] << "\n";
		}
    }
	return 0;
}
2023/6/21 23:46
加载中...