记录编号 442633 评测结果 AAAAAAAAAA
题目名称 [HAOI 2016]食物链 最终得分 100
用户昵称 GravatarHyoi_ctime 是否通过 通过
代码语言 C++ 运行时间 0.797 s
提交时间 2017-08-27 21:48:27 内存使用 2.60 MiB
显示代码纯文本
#include<iostream>
#include<queue>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<vector>
using namespace std;
const int maxn=100005;
vector<int>a[maxn];
int n,m,x,y,ans[maxn],in[maxn],out[maxn];
inline int dfs(int x){
    if(ans[x]) return ans[x];
    for(int i=0;i<a[x].size();i++){
        int u=a[x][i];
        dfs(u);
        ans[x]+=ans[u];
    }
    if (!ans[x])ans[x]=1;
}

int main(){
     freopen("chain_2016.in","r",stdin);
     freopen("chain_2016.out","w",stdout);
    cin>>n>>m;
    for(int i=1;i<=m;i++){
        cin>>x>>y;
        a[y].push_back(x);
        in[x]++;
        out[y]++;
    }
    int anss=0;
    for(int i=1;i<=n;i++)
    if(!in[i]&&out[i]){
        dfs(i);
        anss+=ans[i];
    }
    cout<<anss;
    return 0;
}