全WA求助
查看原帖
全WA求助
905071
wbs123456楼主2024/7/17 11:54
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e5+5,MOD=80112002;
vector<int> a[MAXN];
int b[MAXN],c[MAXN],dp[MAXN];
int n,m,ans;
void kahn(){
	int cnt=0;
	priority_queue<int,vector<int>,greater<int>> pq;
	queue<int> q;
	for(int i=1;i<=n;i++){
		if(!b[i]){
			pq.push(i);
			dp[i]=1;
		}
	}
	while(!pq.empty()){
		int tmp=pq.top();
		pq.pop();
		q.push(tmp);
		for(auto i:a[tmp]){
			b[i]--;
			if(b[i]==0) pq.push(i);
		}
		cnt++;
	}
	for(int i=1;i<=n;i++){
		for(auto j:a[i]){
			dp[j]=(dp[i]+dp[j])%MOD;
		}
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int j,k;
		cin>>j>>k;
		a[j].push_back(k);
		b[k]++;
		c[j]++;
	}
	kahn();
	for(int i=1;i<=n;i++){
		if(c[i]==0) ans=(ans+dp[i])%MOD;
	}
	cout<<ans;
	return 0; 
}

样例已过。

2024/7/17 11:54
加载中...