【洛谷 P2341】[HAOI2006]受欢迎的牛
来源:互联网 发布:淘宝安全中心网页 编辑:程序博客网 时间:2024/05/22 08:28
如果存在明星,那么只可能是唯一的出度为0的环上的元素们。
#include<cstdio>#include<iostream>#include<cstring>#include<queue>#include<stack>using namespace std;stack<int>s;int n,m;const int maxn=100005;int first[maxn],nxt[maxn],tot=0,ans=0;int scc[maxn],size[maxn],dfn[maxn],low[maxn],chu[maxn],dfs_clock=0,numscc=0;bool mark[maxn];struct edge{ int f,t;} es[maxn<<1];void build(int f,int t){ es[++tot]=(edge){f,t}; nxt[tot]=first[f]; first[f]=tot;} void dfs(int x){ dfn[x]=low[x]=++dfs_clock; s.push(x); for(int i=first[x];i;i=nxt[i]) { int w=es[i].t; if(!dfn[w]) { dfs(w); low[x]=min(low[x],low[w]); } else if(!scc[w]) { low[x]=min(low[x],dfn[w]); } } if(dfn[x]==low[x]) { ++numscc; while(1) { int u=s.top(); s.pop(); scc[u]=numscc; size[numscc]++; if(u==x) break; } }}int main(){ scanf("%d%d",&n,&m); int f,t; for(int i=1;i<=m;i++) { scanf("%d%d",&f,&t); build(f,t); } for(int i=1;i<=n;i++) if(!dfn[i]) dfs(i); for(int i=1;i<=n;i++) { for(int j=first[i];j;j=nxt[j]) { if(scc[es[j].t]!=scc[i])//************** { chu[scc[i]]++;//********************统计环的出度 环的出 环的 环 } } } int sz; for(int i=1;i<=numscc;i++) { if(!chu[i]) ans++,sz=size[i]; } if(ans==1) { printf("%d\n",sz); } else printf("0\n"); return 0;}
阅读全文
0 0
- 洛谷 P2341 [HAOI2006]受欢迎的牛
- 洛谷 P2341 [HAOI2006]受欢迎的牛
- 洛谷 P2341 [HAOI2006]受欢迎的牛
- 【洛谷 P2341】[HAOI2006]受欢迎的牛
- BZOJ1051(洛谷P2341) [HAOI2006]受欢迎的牛
- 洛谷P2341 受欢迎的牛
- P2341 受欢迎的牛
- [P2341]受欢迎的牛
- HAOI2006 受欢迎的牛
- [HAOI2006]受欢迎的牛
- [HAOI2006]受欢迎的牛
- [HAOI2006]受欢迎的牛
- [HAOI2006]受欢迎的牛
- [HAOI2006]受欢迎的牛
- [HAOI2006]受欢迎的牛
- [HAOI2006]受欢迎的牛
- [HAOI2006]受欢迎的牛
- 【洛谷 2341】 [HAOI2006]受欢迎的牛
- 在虚拟机(vmware)上安装CentOS
- java内存模型
- 实现类似spring的可配置的aop框架
- 利用spring监听ApplicationListener实现初始化业务数据
- conCurrentLinkedQueue
- 【洛谷 P2341】[HAOI2006]受欢迎的牛
- 2017双十一:同样的促销狂欢,不一样国美新味道
- 线程安全的对象生命期管理
- I Hate It HDU-1754
- JMS简介
- 新手自己搭建、开发网络直播平台历程——了解实现一个简单直播平台的结构
- 苹果官方Toast Demo关键代码,Swift实现
- 三层架构在SSM框架中应用的示意图
- js实现接收心跳包