80分两个点MLE求指点
查看原帖
80分两个点MLE求指点
1120256
Mini_Creation楼主2024/7/15 08:51
#include<bits/stdc++.h>
//#define int long long
using namespace std;
const int mod=80112002;
const int N=10005;
int n,m,mp[N][N],s[N],b[N],ans=0,r[N];
int dfs(int x){
	if(!b[x]) return 1;
	if(r[x]) return r[x];
	int sum=0;
	for(int i=1;i<=n;i++)
		if(mp[i][x])
			sum=(sum+dfs(i))%mod;
	return r[x]=sum;
}
signed main(){
	scanf("%d %d",&n,&m);
	int x,y;
    while(m){
 	    cin>>x>>y;
 	    mp[x][y]=1;
 	    s[x]++;
 	    b[y]++;
 	    m--;
 	}
 	for(int i=1;i<=n;i++)
	  	if(!s[i])
		 ans=(ans+dfs(i))%mod;
	printf("%d",ans);
	return 0;
}
2024/7/15 08:51
加载中...