记录编号 | 442633 | 评测结果 | AAAAAAAAAA | ||
---|---|---|---|---|---|
题目名称 | [HAOI 2016]食物链 | 最终得分 | 100 | ||
用户昵称 | 是否通过 | 通过 | |||
代码语言 | 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; }