lightoj 1034【强连通+缩点】
思路:
缩点,计算入度为0点的个数即可;
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long LL;
- const int N=1e5+10;
- struct asd{
- int to;
- int next;
- };
- asd q[N*4];
- int head[N*4],tol;
- int n,m;
- int dfn[N];
- int low[N];
- int stap[N];
- int in[N];
- int vis[N];
- int tp,p,cnt;
- int kc[N],kr[N];
- void add(int a,int b)
- {
- q[tol].to=b;
- q[tol].next=head[a];
- head[a]=tol++;
- }
- void tarjan(int u)
- {
- dfn[u]=low[u]=++tp;
- stap[++p]=u;
- vis[u]=1;
- for(int v=head[u];v!=-1;v=q[v].next)
- {
- int i=q[v].to;
- if(!dfn[i])
- {
- tarjan(i);
- low[u]=min(low[u],low[i]);
- }
- else if(vis[i])
- low[u]=min(low[u],dfn[i]);
- }
- if(dfn[u]==low[u])
- {
- cnt++;
- int temp;
- while(1)
- {
- temp=stap[p];
- vis[temp]=0;
- in[temp]=cnt;
- p--;
- if(temp==u)
- break;
- }
- }
- }
- int fun()
- {
- memset(kc,0,sizeof(kc));
- for(int i=1;i<=n;i++)
- {
- for(int v=head[i];v!=-1;v=q[v].next)
- {
- int to=q[v].to;
- if(in[to]!=in[i])
- {
- kc[in[to]]++;
- }
- }
- }
- int ans=0;
- for(int i=1;i<=cnt;i++)
- {
- if(!kc[i])
- ans++;
- }
- return ans;
- }
- int main()
- {
- int T,cas=1,x,y;
- scanf("%d",&T);
- while(T--)
- {
- scanf("%d%d",&n,&m);
- tol=0;
- memset(head,-1,sizeof(head));
- memset(dfn,0,sizeof(dfn));
- memset(vis,0,sizeof(vis));
- while(m--)
- {
- scanf("%d%d",&x,&y);
- add(x,y);
- }
- tp=p=cnt=0;
- for(int i=1;i<=n;i++)
- {
- if(!dfn[i])
- tarjan(i);
- }
- printf("Case %d: %d\n",cas++,fun());
- }
- return 0;
- }
lightoj 1034【强连通+缩点】的更多相关文章
- poj2553 强连通缩点
The Bottom of a Graph Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 10114 Accepted: ...
- hdu 4635 Strongly connected 强连通缩点
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4635 题意:给你一个n个点m条边的图,问在图不是强连通图的情况下,最多可以向图中添多少条边,若图为原来 ...
- BZOJ 1051: [HAOI2006]受欢迎的牛 强连通缩点
题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=1051 题解: 强连通缩点得到DAG图,将图转置一下,对入度为零的点跑dfs看看能不能访问 ...
- hdu 2767 Proving Equivalences 强连通缩点
给出n个命题,m个推导,问最少添加多少条推导,能够使全部命题都能等价(两两都能互推) 既给出有向图,最少加多少边,使得原图变成强连通. 首先强连通缩点,对于新图,每一个点都至少要有一条出去的边和一条进 ...
- UVA - 11324 The Largest Clique 强连通缩点+记忆化dp
题目要求一个最大的弱联通图. 首先对于原图进行强连通缩点,得到新图,这个新图呈链状,类似树结构. 对新图进行记忆化dp,求一条权值最长的链,每一个点的权值就是当前强连通分量点的个数. /* Tarja ...
- poj-1904(强连通缩点)
题意:有n个王子,每个王子都有k个喜欢的女生,王子挑选喜欢的女生匹配,然后再给你n个王子最开始就定好的匹配,每个王子输出能够结合且不影响其他王子的女生匹配 解题思路:强连通缩点,每个王子与其喜欢的女生 ...
- NOIP2017提高组Day1T3 逛公园 洛谷P3953 Tarjan 强连通缩点 SPFA 动态规划 最短路 拓扑序
原文链接https://www.cnblogs.com/zhouzhendong/p/9258043.html 题目传送门 - 洛谷P3953 题目传送门 - Vijos P2030 题意 给定一个有 ...
- BZOJ1179 [Apio2009]Atm Tarjan 强连通缩点 动态规划
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1179 题意概括 有一个有向图,每一个节点有一个权值,其中有一些结束点. 现在,你要从S出发,到达任 ...
- BZOJ1051 [HAOI2006]受欢迎的牛 Tarjan 强连通缩点
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1051 题意概括 有n只牛,有m个羡慕关系. 羡慕关系具有传递性. 如果A羡慕B,B羡慕C,那么我们 ...
- 强连通缩点— HDU1827
强连通缩点以后最终形成的是一棵树 我们可以根据树的性质来看缩点以后的强连通分量图,就很好理解了 /* gyt Live up to every day */ #include<cstdio> ...
随机推荐
- java设计模式之综述
一.什么是设计模式 设计模式是一套被反复使用的.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系 ...
- Struts action
<action name="KnowledgeBankManageAction_*" class="knowledgeBankManageAction" ...
- ubuntu 12.04安装alsa-lib、alsa-utils【转】
1. alsa-lib ./configure sudo make install 注意:默认是安装到/usr/这个目录下面,但是我测试多了多次,安装了alsa-lib之后,系统就没有声音了,也没有找 ...
- sdut oj 1163 C语言实验——排列 (当初不会递归生成排列,这个题目现在才补上 刘汝佳给出了写法 *【模板】 当然有生成全排列的函数存在 )
C语言实验——排列 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 有4个互不相同的数字,请按序输出由其中三个不重复数字组成的排列 ...
- Gym - 100187E E - Two Labyrinths —— bfs
题目链接:http://codeforces.com/gym/100187/problem/E 题解:一开始做的时候是将两幅图合并,然后直接bfs看是否能到达终点.但这种做法的错的,因为走出来的路对于 ...
- java 接口自动化测试之数据请求的简单封装
我们自己用java写接口自动化测试框架或者做个接口自动化测试平台的话,是需要自己进行相关的请求的,因此我们需要简单的封装下httpclient,我新建了一个http工具类,将get方法和post方法进 ...
- 《数学之美》第15章 矩阵计算和文本处理中两个分类问题——SVD分解的应用
转载请注明原地址:http://www.cnblogs.com/connorzx/p/4170047.html 提出原因 基于余弦定理对文本和词汇的处理需要迭代的次数太多(具体见14章笔记),为了找到 ...
- ansible 自动ssh
http://szgb2016.blog.51cto.com/340201/1669731 安装 yum -y install ansible expect 生成key,ssh-keygen -t r ...
- SqlServer--学习触发器
触发器是一种特殊的存储过程,一种不能被显式执行,而必须依附于一个事件的过程 主要作用:自动化操作;减少手动操作以及出错的几率. 触发器分类:DML(Data Manipulation Language ...
- powershell 扩展 (PSCX) 安装指南
在玩ansible的过程中,使用win_unzip模块时powershell支持不了,需要安装PSCX对powershell进行扩展,随手记录下安装过程. 从官网下载的Pscx是一个zip压缩文件,解 ...