20分,其他全是MLE,求大佬帮助
查看原帖
20分,其他全是MLE,求大佬帮助
774204
A_chicken_boy楼主2023/7/18 15:10

下面是代码,求大佬改进

#include <bits/stdc++.h>
using namespace std ;
#define leng 100001
int n , m , tot ;
int ver[leng] ;
int mnext[leng] , head[leng];
int maxn ;

void add(int x,int y,int z){
	ver[++tot]=y;
	mnext[tot]=head[x],head[x]=tot;
	
}
void copy ( int x ){
	//访问从x出发的所有边
	for(int i=head[x];i;i=mnext[i]){
		int y=ver[i];
		//找到了一条有向边(x,y),权值为z。	
		if( y > maxn ){
			maxn = y ;
		}
		copy(y);
	} 
}
int main ( ){
	scanf("%d %d", &n , &m ) ;
	for ( int i= 1 ;i <= m ; ++i ){
		int a , b ;
		scanf("%d %d" , &a , &b ) ;
		add( a , b  , 0 ) ;
	}
	for ( int i =1  ; i <= n ; ++i ){
		maxn = i ;
		copy(i);
		cout << maxn << " " ;
	}
	return 0 ;
}
2023/7/18 15:10
加载中...