蒟蒻怎么拯救 TLE
  • 板块P3916 图的遍历
  • 楼主Wzmois
  • 当前回复3
  • 已保存回复3
  • 发布时间2025/2/2 10:18
  • 上次更新2025/2/2 18:03:09
查看原帖
蒟蒻怎么拯救 TLE
1530321
Wzmois楼主2025/2/2 10:18

TLE at #9,其他 200ms\le200ms

#9:n=54547,m=75940\# 9:n=54547,m=75940

#include <bits/stdc++.h>
using namespace std;
const int N=100010;
int hd[N],val[N],nex[N],idx;
int n;
bool vis[N];
void add(int a,int b){
	val[idx]=b,nex[idx]=hd[a],hd[a]=idx++;
}
int maxn=-1,q=0;
void dfs(int u){
    vis[u]=true;
    maxn=max(maxn,u);
    if(maxn==n){
    	printf("%d ",n);
    	q=1;
    	return;
	}
    for(int i=hd[u];i!=-1;i=nex[i]){
    	if(!vis[val[i]]){
			dfs(val[i]);
		} 
	} 
}
int main(){
	memset(hd,-1,sizeof(hd));
	int m,f,b;
	scanf("%d",&n);
	scanf("%d",&m);
	while(m--){
		scanf("%d%d",&f,&b);
		add(f,b);
	}
	for(int i=1;i<=n;i++){
		maxn=-1,q=0;
		memset(vis,0,sizeof(vis));
		dfs(i);
		if(!q) printf("%d ",maxn);
	} 
	return 0;
}
2025/2/2 10:18
加载中...