【codevs 2833】奇怪的梦境
2017-09-03 10:01
316 查看
拓扑排序
#include<cstdio> #include<iostream> #include<queue> #include<cstring> using namespace std; const int maxn=25000+5; int tot=0,first[maxn],next[maxn],times[maxn]; queue<int>q; int n,m,cnt=0; struct edge { int f,t; }es[maxn]; void build(int f,int t) { es[++tot]=(edge){f,t}; next[tot]=first[f]; first[f]=tot; times[t]++; } int lala() { for(int i=1;i<=n;i++) { if(times[i]==0) { q.push(i); times[i]--; cnt++; } } while(!q.empty()) { int x=q.front(); q.pop(); for(int i=first[x];i!=-1;i=next[i]) { int u=es[i].t; times[u]--; if(times[u]==0) { q.push(u); times[u]--; cnt++; } } } return cnt; } int main() { memset(first,-1,sizeof(first)); memset(times,0,sizeof(times)); scanf("%d%d",&n,&m); int a,b; for(int i=1;i<=m;i++) { scanf("%d%d",&a,&b); build(a,b); } int ha=n-lala(); if(ha==0) cout<<"o(∩_∩)o"<<endl; else cout<<"T_T"<<endl<<ha<<endl; return 0; }
相关文章推荐
- 【CODEVS】2833 奇怪的梦境
- codevs 2833 奇怪的梦境
- CodeVs 2833 奇怪的梦境
- 【codevs 2833】奇怪的梦境
- Codevs 2833 奇怪的梦境
- codevs2833 奇怪的梦境 x
- 【CODEVS】2833 奇怪的梦境
- codevs 2833 奇怪的梦境 拓扑排序
- Codevs 2833 奇怪的梦境
- codevs2833 2833 奇怪的梦境(拓扑排序)
- 2833 奇怪的梦境 未AC
- 【拓扑排序】CODEVS 2833 奇怪的梦境
- 2833 奇怪的梦境
- 2833 奇怪的梦境
- 2833 奇怪的梦境
- codevs 2833 奇怪的梦境 题解报告
- Codevs 2833 奇怪的梦境
- 奇怪的梦境(codevs 2833)
- 【CS 2833】奇怪的梦境(拓扑排序top_sort)
- codevs 2833 奇怪的梦境