全为WA求解为什么
查看原帖
全为WA求解为什么
1198506
wo488楼主2024/10/25 20:00
#define _CRT_SECURE_NO_WARNINGS
#include<bits/stdc++.h>
#define MOD 80112002
using namespace std;
#define N 5001//存点有关的边->N为边
vector<int>a[N];
//深搜找出最长路径
int in[N]={ 0 };
int f[N] = { 0 };
queue<int>q;
int main() {
	int n, m;
	cin >> n >> m;//a[i][0]为生产者
	for (int i = 0; i < m; i++)
	{
		int A, B;//被吃的生物A,吃A的生物B
		cin >> A >> B;
		a[A].push_back(B);
		in[B]++;
	}
	for (int i = 0; i < n; i++) {
		if (in[i] == 0) {
			q.push(i);
			f[i] = 1;
		}
	}
	while (!q.empty()) {
		int pro = q.front();
		q.pop();
		for (int i = 0; i < a[pro].size(); i++) {
			int u = a[pro][i];
			in[u]--;
			if (in[u] == 0)
				q.push(u);
			f[u] = max(f[u]%MOD, (f[pro]+1)%MOD);
		}
	}
	int max = INT_MIN;
	for (int j = 1; j <= n; j++) {
		if (max < f[j]) {
			max = f[j];
		}
	}
	printf("%d", max);
}
2024/10/25 20:00
加载中...