各位大佬求助
查看原帖
各位大佬求助
386385
ChenErxiang楼主2021/8/13 22:27
#include<bits/stdc++.h>
using namespace std;
int n,m;
int su;
int sv;
int by;
int Next;
int Max=-1;

struct Edge
{
	int next;
	int to;
	int w;
} edge[100010];
int head[100010]={0};
int cnt=0;
void add(int u,int v,int w)
{
	cnt++;
	edge[cnt].w=w;
	edge[cnt].to=v;
	edge[cnt].next=head[u];
	head[u]=cnt;
}

int main()
{
	cin>>n>>m;
	for(int s=1;s<=m;s++)
	{
		cin>>su>>sv;
		if(Max<su) Max=su;
		if(Max<sv) Max=sv;
		add(su,sv,1);
	}
	for(int j=1;j<=n;j++)
	{
		int ans=j;
		for(int i=head[j];i;)
		{
			by=i;
			if(edge[i].to>ans) ans=edge[i].to;
			if(ans==Max)
			{
				break;
			}
			Next=edge[i].to;
			if(Next!=0)
			{
				i=head[Next];
				if(edge[i].to>ans) ans=edge[i].to;
				continue;
			}
			i=by;
			i=edge[i].next;
		}
		cout<<ans<<" ";
	}
	return 0;
} 
测试点1、2、4、6、9 TLE
    3、5、7、8、10 WA
2021/8/13 22:27
加载中...