提交记录 6873


用户 题目 状态 得分 用时 内存 语言 代码长度
L__A 2002. 【NOIP2018】旅行(加强版) Wrong Answer 90 441.777 ms 68764 KB C++ 1.62 KB
提交时间 评测时间
2018-11-11 18:35:04 2020-08-01 00:52:13
#include <cstdio>
#include <vector>
#include <cstring>
#include <algorithm>

using namespace std;

#define pb push_back

const int N=500010,inf=0x3f3f3f3f;
int n,m,ans[N],num,lim=-1,outlim[N],out=500005,st[N],tp;
bool vis[N],incir[N];
vector <int> e[N];

inline void re(int &x)
{
	x=0;
	char ch=getchar();
	while(ch<'0'||ch>'9') ch=getchar();
	while(ch>='0'&&ch<='9') x=x*10+(ch^48), ch=getchar();
}

void cirl(int x,int fa)
{
	vis[x]=1;
	st[++tp]=x;
	int i,y,siz=e[x].size();
	for(i=0;i<siz;++i)
	{
		y=e[x][i];
		if(y==fa) continue;
		if(vis[y])
		{
			lim=x;
			while(st[tp]!=y)
			{
				incir[st[tp]]=1;
				--tp;
			}
			return;
		}
		cirl(y,x);
		if(lim!=-1) return;
	}
	--tp;
}

void dfs(int x)
{
	ans[++num]=x;
	vis[x]=1;
	if(out!=500006&&outlim[x]!=inf) out=x;
	int i,y,siz=e[x].size();
	for(i=0;i<siz;++i)
	{
		y=e[x][i];
		if(vis[y]) continue;
		if(incir[y]&&!vis[lim])
		{
			if(outlim[out]!=inf)
			{
				if(y>outlim[out]&&!vis[outlim[out]]) {out=500006; continue;}
			}
			else
			{
				if(y>lim) {out=500006; continue;}
			}
		}
		dfs(y);
	}
	if(x==out) out=500006;
}

int main()
{
//	freopen("travel.in","r",stdin);
//	freopen("travel.out","w",stdout);
	
	int i,j,u,v;
	re(n); re(m);
	for(i=1;i<=m;++i)
	{
		re(u); re(v);
		e[u].pb(v); e[v].pb(u);
	}
	for(i=1;i<=n;++i) sort(e[i].begin(),e[i].end());
	cirl(1,0);
	memset(outlim,0x3f,sizeof(outlim));
	for(i=1;i<=n;++i)
		if(incir[i]&&e[i].size()>2)
		{
			u=e[i].size()-1;
			for(j=u;j>=0;--j)
			{
				v=e[i][j];
				if(incir[v]) break;
				outlim[i]=v;
			}
		}
	memset(vis,0,sizeof(vis));
	dfs(1);
	for(i=1;i<=n;++i) printf("%d ",ans[i]);
	
//	fclose(stdin); fclose(stdout);
	return 0;
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #12.276 ms13 MB + 880 KBAcceptedScore: 5

Testcase #22.275 ms13 MB + 880 KBAcceptedScore: 5

Testcase #32.271 ms13 MB + 884 KBAcceptedScore: 5

Testcase #42.287 ms13 MB + 884 KBAcceptedScore: 5

Testcase #53.799 ms14 MB + 236 KBAcceptedScore: 5

Testcase #63.816 ms14 MB + 216 KBAcceptedScore: 5

Testcase #743.158 ms21 MB + 36 KBAcceptedScore: 5

Testcase #843.961 ms19 MB + 904 KBAcceptedScore: 5

Testcase #9429.979 ms50 MB + 332 KBAcceptedScore: 5

Testcase #10434.984 ms53 MB + 324 KBAcceptedScore: 5

Testcase #11428.801 ms44 MB + 700 KBAcceptedScore: 5

Testcase #12437.054 ms47 MB + 900 KBAcceptedScore: 5

Testcase #133.811 ms14 MB + 256 KBWrong AnswerScore: 0

Testcase #143.846 ms14 MB + 312 KBWrong AnswerScore: 0

Testcase #1542.015 ms21 MB + 796 KBAcceptedScore: 5

Testcase #1642.567 ms22 MB + 440 KBAcceptedScore: 5

Testcase #17441.777 ms67 MB + 156 KBAcceptedScore: 5

Testcase #18441.63 ms67 MB + 156 KBAcceptedScore: 5

Testcase #19398.722 ms51 MB + 748 KBAcceptedScore: 5

Testcase #20424.826 ms60 MB + 296 KBAcceptedScore: 5


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