最后一个点WA
查看原帖
最后一个点WA
1432340
KevinTYX楼主2025/7/24 13:03

最后一个点WA

#include<bits/stdc++.h>
using namespace std;
vector<int>g[100001];
int n,m,len;
int xl[200001];
int del[100001];
struct du
{
	int rd,cd;
}d[100001];
void dfs(int i)
{
	for(int j=del[i];j<g[i].size();j=del[i])
	{
		del[i]=j+1;
		dfs(g[i][j]);
	}
	xl[++len]=i;
}
int main()
{
	int i,u,v;
	cin>>n>>m;
	for(i=1;i<=m;i++)
	{
		scanf("%d%d",&u,&v);
		d[u].cd++;
		d[v].rd++;
		g[u].push_back(v);
	}
	for(i=1;i<=n;i++)
	{
		sort(g[i].begin(),g[i].end());
	}
	int k=0,st=0;
	for(i=1;i<=n;i++)
	{
		if(d[i].cd!=d[i].rd)
		{
			k++;
			if(d[i].cd-d[i].rd==1)
			{
				st=i;
			}
		}
	}
	if(k==0)
	{
		st=1;
	}
	if(k==2||k==0&&st>0)
	{
		dfs(st);
		for(i=len;i>0;i--)
		{
			printf("%d ",xl[i]);
		}
	}
	else
	{
		cout<<"No";
	}
	return 0;
 } 
2025/7/24 13:03
加载中...