求助神犇 全部TLE
查看原帖
求助神犇 全部TLE
402540
那一抹黄昏楼主2021/8/4 21:33
#include <bits/stdc++.h>
using namespace std;
int N ; int M ; const int Maxn=1000010;int x,y;
int lian[Maxn];int sum;int k[Maxn];
struct jxj
{	int to;		int next;	}e[Maxn];

void lianjie(int x, int y)
{
    e[++sum]=(jxj){y,lian[x]};
	/*++sum;
	e[sum].to = y;
	e[sum].next = lian[x];
	lian[x]=sum;*/
    lian[x]=sum;
}

int dfs(int u)
{
	if(k[u]==1) return k[u];
	k[u]=1;
	for(int i=lian[u];i;i=e[i].next)
	{
		int s=e[i].to;
		k[u]=max(k[u],dfs(s)+1);
	}
	return k[u];
}

int main()
{
	memset(k,0,sizeof(k));
	scanf("%d %d",&N,&M);
	for(int i=1;i<=M;i+=1)//while(M --> 0)
	{
		cin>>x>>y;
		lianjie(y,x);
	}
	for(int i=1;i<=N;i+=1)
	printf("%d\n",dfs(i)) ;  return 0;
}```
2021/8/4 21:33
加载中...