RE求助
查看原帖
RE求助
1344630
panxijun楼主2024/11/6 13:20
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define ULL unsinged LL
#define STR string
int e[1010][1010];
LL cnt,cntt,sta,n,m,rd[1000100],cd[1000100],head[1000100],ans[10000100],t;
void in()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		LL v1,v2;
		cin>>v1>>v2;
		e[v1][v2]++;
		rd[v2]++;
		cd[v1]++;
	}
}
void dfs(LL x)
{
	for(int i=1;i<=n;i++)
	{
		if(e[x][i]>0)
		{
			e[x][i]--;
			dfs(i);
		}
	}
	t++;
	ans[t]=x;
}
void core()
{
	bool flag=false;
	for(int i=1;i<=n;i++)
		if(cd[i]!=rd[i])flag=true;
	for(int i=1;i<=n;i++)
	{
		if(cd[i]==1+rd[i])
		{
			sta=i;
			cnt++;
		}
		if(rd[i]==1+cd[i])cntt++;
		if(cd[i]-rd[i]>=2||rd[i]-cd[i]>=2)
		{
			cout<<"No";
			exit(0);
		}
	}
//	cout<<sta<<endl; 
	if(!flag)
	{
		dfs(1);
		for(int i=t;i>=1;i--)
			cout<<ans[i]<<" ";
		exit(0);
	}
	if(cnt==1&&cntt==1)
	{
		dfs(sta);
		for(int i=t;i>=1;i--)
			cout<<ans[i]<<" ";
		exit(0);
	}
}
void out()
{
	cout<<"No";
}
int main()
{
	//freopen("1.in","r",stdin);
	//freopen("1.out","w",stdout);
	in();
	core();
	out();
	return 0;
}


RE60分

蒟蒻求助

提交记录

2024/11/6 13:20
加载中...