求调
查看原帖
求调
975287
KDL_ANIPLEX楼主2024/3/21 16:01

样例输出0;

#include<bits/stdc++.h>
using namespace std;
int n,m,s;
struct node{
	int lt,sum;//lt入度,sum值 
	vector<int>b;//捕食者 
}a[5005];
queue<node>q;
int main(){
	scanf ("%d%d",&n,&m);
	while (m--){
		int x,y;
		scanf ("%d%d",&x,&y);
		a[x].b.push_back(y);
		a[y].lt++;
	}
	for (int i=1;i<=n;i++)
		if (!a[i].lt){
		q.push(a[i]);
		a[i].sum=1;
	}
	while (!q.empty()){
		node l=q.front();
		q.pop();
		for (int i=0;i<l.b.size();i++){
			a[l.b[i]].lt--;
			a[l.b[i]].sum+=l.sum,a[l.b[i]].sum%=80112002;
			if (!a[l.b[i]].lt)
				q.push(a[l.b[i]]);
		}
	}
	for (int i=1;i<=n;i++)
		if (!a[i].b.size()) s=(s+a[i].sum)%80112002;
		printf("%d\n",s);
	return 0;
}
2024/3/21 16:01
加载中...