样例点#8没通过,哪位大佬帮忙看看?
查看原帖
样例点#8没通过,哪位大佬帮忙看看?
1792893
Daizhiyang楼主2025/8/4 21:12

样例点 #8没通过,TLE,哪位大佬帮忙看看?

我试了一下,memset()比for要快

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+5;
int n,m;
bool vis[N];
vector<int>a[N];
queue<int>q;

int bfs(int x){
    int ans=0;
    q.push(x);
    vis[x]=1;
    while(q.size()){
	    int d=q.front();
		ans=max(d,ans);
	    q.pop();
	    for(int i=0;i<a[d].size();i++){
		    if(!vis[a[d][i]]){
			    q.push(a[d][i]);
			    vis[a[d][i]]=1;
			}
		}
	}
	return ans;
}

signed main(){
	scanf("%lld %lld",&n,&m);
	for(int i=1;i<=m;i++){
	    int x,y;
	    scanf("%lld %lld",&x,&y);
	    a[x].push_back(y);
	}
	for(int i=1;i<=n;i++){
		while(q.size())q.pop();
		memset(vis,0,sizeof(vis));
	    printf("%lld ",bfs(i));
	}
	return 0;
}
2025/8/4 21:12
加载中...