40分,RE,求调
查看原帖
40分,RE,求调
1404537
xiaominghao楼主2025/7/26 22:28
#include <bits/stdc++.h>
using namespace std;
int n,m,ans;
vector <int> p[5005];
queue <int> q;
int f[5005],ind[5005],outd[5005];
int main(){
    cin>>n>>m;
    for(int i=1;i<=m;i++){
        int x,y;
        cin>>x>>y;
        outd[x]++;
        ind[y]++;
        p[x].push_back(y);
    }
    memset(f,0,sizeof(f));
    for(int i=1;i<=m;i++)
        if(ind[i]==0){
            q.push(i);
            f[i]=1;
        }
    while(!q.empty()){
        int x=q.front();
        q.pop();
        for(int i=0,sz=p[x].size();i<sz;i++){
            int y=p[x][i];
            f[y]=(f[x]+f[y])%80112002;
            ind [y]--;
            if(ind[y]==0)
                q.push(y);
        }
    }
    for(int i=1;i<=n;i++)
        if(outd[i]==0) ans=(ans+f[i])%80112002;
    cout<<ans<<"\n";
    return 0;
}
2025/7/26 22:28
加载中...