[HAOI2006]受欢迎的牛(缩点+Tarjan)
来源:互联网 发布:查看域名的ns记录 编辑:程序博客网 时间:2024/05/15 11:32
题目:
我是超链接
题解:
缩点之后求出度为0的点有几个,如果是1就输出强连通分量中点的个数,否则输出0
这个空间不知道怎么回事,点数必须开50000...........
代码:
#include <cstdio>#include <cstring>#include <iostream>#define M 50005#define N 50005using namespace std;int nxt[M*2],point[M*2],v[M*2],tot,tmp,n,m,NN,num;int dfn[N],low[N],strack[N],bb[N],x[N],y[N],out[N],belong[N];bool vis[N];void addline(int x,int y){ ++tot; nxt[tot]=point[x]; point[x]=tot; v[tot]=y;}void tarjan(int now){ dfn[now]=low[now]=++NN; vis[now]=1; strack[++tmp]=now; for (int i=point[now];i;i=nxt[i]) if (!dfn[v[i]]) { tarjan(v[i]); low[now]=min(low[now],low[v[i]]); } else if (vis[v[i]]) low[now]=min(low[now],dfn[v[i]]); if (low[now]==dfn[now]) { ++num; int big=0; while (strack[tmp]!=now) { belong[strack[tmp]]=num; vis[strack[tmp]]=0;tmp--; big++; } belong[strack[tmp]]=num; vis[strack[tmp]]=0;tmp--;big++; bb[num]=big; }}int main(){ int i,ans=0,cnt; scanf("%d%d",&n,&m); for (i=1;i<=m;i++) { scanf("%d%d",&x[i],&y[i]); addline(x[i],y[i]); } for (i=1;i<=n;i++) if (!dfn[i]) tarjan(i); for (i=1;i<=m;i++) if (belong[x[i]]!=belong[y[i]]) ++out[belong[x[i]]]; for(i=1;i<=num;i++) if (!out[i]) ans++,cnt=bb[i]; if (ans==1) printf("%d",cnt); else printf("0");}
1 0
- [HAOI2006]受欢迎的牛 Tarjan缩点
- bzoj 1051: [HAOI2006]受欢迎的牛(tarjan 缩点)
- 【bzoj 1051】[HAOI2006]受欢迎的牛(Tarjan缩点)
- [HAOI2006]受欢迎的牛(缩点+Tarjan)
- bzoj1051 [HAOI2006]受欢迎的牛[图论][tarjan缩点]
- BZOJ[1051][HAOI2006]受欢迎的牛 Tarjan缩点
- [HAOI2006]受欢迎的牛(缩点)
- BZOJ1051: [HAOI2006]受欢迎的牛(强连通Tarjan 缩点)
- BZOJ 1051: [HAOI2006]受欢迎的牛 强连通分量,Tarjan缩点
- [HAOI2006]受欢迎的牛(Tarjan+并查集)
- 【bzoj1051】 [HAOI2006]受欢迎的牛 tarjan
- 【HAOI2006】受欢迎的牛 tarjan+入度出度
- 【Tarjan】BZOJ1051(HAOI2006)[受欢迎的牛]题解
- [bzoj1051][HAOI2006]受欢迎的牛 Tarjan
- BZOJ 1051 [HAOI2006]受欢迎的牛 tarjan
- 【Tarjan】BZOJ1051 [HAOI2006]受欢迎的牛
- BZOJ1051 [HAOI2006]受欢迎的牛 tarjan
- 【bzoj1309】【HAOI2006】【受欢迎的牛】【强连通分量缩点】
- Java异常
- 浅谈前端性能优化(六)——CDN内容分发网络
- linux内核实时进程的调度原理
- Java中Lock框架学习笔记
- 最近最久未使用调度算法
- [HAOI2006]受欢迎的牛(缩点+Tarjan)
- Hadoop基础教程-第1章 环境安装配置(1.2 安装Linux虚拟机)
- JS操作标签
- 通过Style来修改状态栏颜色
- js分享到侧边栏
- ubuntu14.04 安装caffe步骤 CPU版本
- linux内核普通进程CFS调度原理
- 特征匹配中的宽基线和窄基线
- mac 桌面不显示东西