为什么交上去会MLE
查看原帖
为什么交上去会MLE
685398
ssine233楼主2023/11/13 20:49
#include <bits/stdc++.h>
using namespace std;
int n, m, u, v;
int mmto[200100], mmnxt[200100], mmd[100100], mms[100100];

void dfs(int x) {
	if(mms[x]==0) {
		int q = mmd[x], maxx = x, r;	
		while(q!=0) {
			dfs(mmto[q]);
			if(mms[mmto[q]]>maxx)		maxx = mms[mmto[q]];
			q = mmnxt[q];
		} 
		mms[x] = maxx;
	}
}

int main() {
	scanf("%d%d", &n, &m);
	for(int i=1; i<=m; i++) {
		scanf("%d%d", &u, &v);
		mmto[i] = v;
		mmnxt[i] = mmd[u];
		mmd[u] = i;
	}
	for(int i=1; i<=n; i++) {
		if(mms[i]==0)	dfs(i);
		printf("%d ", mms[i]);
	}
	return 0;
}
2023/11/13 20:49
加载中...