提交记录 6951


用户 题目 状态 得分 用时 内存 语言 代码长度
wys noip18d. 【NOIP2018】旅行 Accepted 100 4.456 ms 388 KB C++ 1.51 KB
提交时间 评测时间
2018-11-20 14:56:33 2020-08-01 00:54:47
// bf.cpp 18-10-28 wys

#include <stdio.h>
#include <string.h>
#include <algorithm>

const int MAXN = 300005;

int n, m;

struct data {
	int u, v, id;
};

bool operator < (const data &a, const data &b) {
	return a.u < b.u || (a.u == b.u && a.v < b.v);
}

data _edges[MAXN * 2];
data *first[MAXN];

int ans[MAXN];
int dfsseq[MAXN];
int visit[MAXN];

int del_e;
int dfs_idx;
bool ok;
bool fail;

#define visit_id (del_e + 1)

void dfs(int x) {
	if (!ok) {
		if (x < ans[dfs_idx]) {
			ok = true;
		} else if (x > ans[dfs_idx]) {
			fail = true;
			return;
		}
	}
	dfsseq[dfs_idx++] = x;
	visit[x] = visit_id;
	for (data *d = first[x]; d->u == x; d++) if (d->id != del_e) {
		int y = d->v;
		if (visit[y] == visit_id) continue;
		dfs(y);
		if (fail) return;
	}
}



int main() {
	scanf("%d%d", &n, &m);
	if (n == 1) {
		printf("1\n");
		return 0;
	}
	for (int i = 0; i < m; i++) {
		int u, v;
		scanf("%d%d", &u, &v);
		_edges[i * 2] = (data){u, v, i};
		_edges[i * 2 + 1] = (data){v, u, i};
	}
	std::sort(_edges, _edges + 2 * m);
	first[1] = _edges;
	for (int i = 1; i < 2 * m; i++) {
		if (_edges[i].u != _edges[i - 1].u) {
			first[_edges[i].u] = _edges + i;
		}
	}
	ans[0] = 2;
	if (n == m) {
		for (int i = 0; i < m; i++) {
			del_e = i;
			dfs_idx = 0;
			ok = false;
			fail = false;
			dfs(1);
			if (dfs_idx == n && ok && !fail) {
				memcpy(ans, dfsseq, n * sizeof(int));
			}
		}
	} else {
		del_e = -2;
		dfs(1);
		memcpy(ans, dfsseq, n * sizeof(int));
	}
	for (int i = 0; i < n; i++) {
		printf("%d%c", ans[i], " \n"[i + 1 == n]);
	}
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #113.77 us36 KBAcceptedScore: 4

Testcase #216.95 us36 KBAcceptedScore: 4

Testcase #313.33 us36 KBAcceptedScore: 4

Testcase #445.8 us36 KBAcceptedScore: 4

Testcase #542.98 us36 KBAcceptedScore: 4

Testcase #6349.55 us96 KBAcceptedScore: 4

Testcase #7346.31 us100 KBAcceptedScore: 4

Testcase #8348.46 us100 KBAcceptedScore: 4

Testcase #9362.9 us92 KBAcceptedScore: 4

Testcase #10360.5 us88 KBAcceptedScore: 4

Testcase #111.887 ms340 KBAcceptedScore: 4

Testcase #121.888 ms364 KBAcceptedScore: 4

Testcase #131.879 ms372 KBAcceptedScore: 4

Testcase #141.883 ms336 KBAcceptedScore: 4

Testcase #151.873 ms388 KBAcceptedScore: 4

Testcase #1615.01 us36 KBAcceptedScore: 4

Testcase #1714.38 us36 KBAcceptedScore: 4

Testcase #1854.5 us36 KBAcceptedScore: 4

Testcase #1955.19 us36 KBAcceptedScore: 4

Testcase #20509.87 us104 KBAcceptedScore: 4

Testcase #21471.18 us104 KBAcceptedScore: 4

Testcase #224.456 ms104 KBAcceptedScore: 4

Testcase #233.31 ms376 KBAcceptedScore: 4

Testcase #243.008 ms368 KBAcceptedScore: 4

Testcase #252.503 ms360 KBAcceptedScore: 4


Judge Duck Online | 评测鸭在线
Server Time: 2026-04-09 05:47:22 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠