MLE,求调
查看原帖
MLE,求调
1034504
y270101ry楼主2025/7/20 14:35
#include <bits/stdc++.h>
using namespace std;
int n, m, r;
vector <int> sw[5005];
queue<int> q;
long long ans, cd[5005], rd[5005];
void bfs(){
	while(!q.empty()){
		int now = q.front();
		q.pop();
		int sum = rd[now];
		if(sum == 0)continue;
		ans += sum - 1;
		ans %= 80112002;
		for(int i = 0; i < sum; i++){
			q.push(sw[now][i]);
		}
	}
}
int main() {
	scanf("%d%d", &n, &m);
	for(int i = 1; i <= m; i++){
		int a, b;
		scanf("%d%d", &a, &b);
		sw[a].push_back(b);
		cd[b]++;
		rd[a]++;
	}
	for(int i = 1; i <= n; i++){
		if(cd[i] == 0){
			r++;
			q.push(i);
		}
	}
	if(r > 0)ans = r;
	bfs();
	printf("%d\n", ans);
	return 0;
}

2025/7/20 14:35
加载中...