hdu 3836 tarjain 求强连通分量个数
- // 给你一个有向图,问你最少加几条边能使得该图强连通
- #include <iostream>
- #include <cstdio>
- #include <cstring>
- #include <string>
- #include <utility>
- #include <algorithm>
- #include <vector>
- #include <queue>
- #include <stack>
- using namespace std;
- #define max(x,y) x>=y?x:y
- #define lowbit(x) x&(-x)
- typedef long long ll;
- const int N=;
- int n,m;
- int head[N],low[N],num[N];
- int in[N],out[N],be[N];
- int ans,cnt,ans1,ans2;
- int index;
- bool vis[N];
- struct Edge
- {
- int from,to,nex;
- }e[N*];
- stack<int>s;
- void init()
- {
- memset(head,-,sizeof(head));
- memset(num,-,sizeof(num));
- memset(vis,,sizeof(vis));
- memset(low,,sizeof(low));
- memset(in,,sizeof(in));
- memset(out,,sizeof(out));
- cnt=index=;
- }
- void add(int u,int v)
- {
- e[cnt].from=u;
- e[cnt].to=v;
- e[cnt].nex=head[u];
- head[u]=cnt++;
- }
- void tarjan(int u)
- {
- low[u]=num[u]=++index;
- vis[u]=;
- s.push(u);
- for (int i=head[u];i!=-;i=e[i].nex)
- {
- int v=e[i].to;
- if(num[v]==-)
- {
- tarjan(v);
- low[u]=min(low[u],low[v]);
- }
- else if(vis[v])
- {
- low[u]=min(low[u],num[v]);
- }
- }
- if(num[u]==low[u])
- {
- int x;
- ans++;
- do{
- x=s.top();
- s.pop();
- vis[x]=;
- be[x]=ans;
- }while(x!=u);
- }
- }
- int main()
- {
- while(~scanf("%d %d",&n,&m))
- {
- init();
- ans=;
- int a,b;
- for (int i=;i<m;i++)
- {
- scanf("%d %d",&a,&b);
- add(a,b);
- }
- for (int i=;i<=n;i++)
- {
- if(num[i]==-)
- {
- tarjan(i);
- }
- }
- for (int i=;i<cnt;i++)
- {
- int a=e[i].from;
- int b=e[i].to;
- if(be[a]!=be[b])
- {
- in[be[b]]++;
- out[be[a]]++;
- }
- }
- ans1=ans2=;
- for (int i=;i<=ans;i++)//ans 从1开始。ans为原图强联通分量的个数、
- {
- if(!in[i])
- {
- ans1++;
- }
- if(!out[i])
- {
- ans2++;
- }
- }
- printf("%d\n",ans==?:max(ans1,ans2));
- }
- return ;
- }
- /*
- 3 2
- 1 2
- 2 3
- 有3个联通快
- */
hdu 3836 tarjain 求强连通分量个数的更多相关文章
- UVALive 4262——Trip Planning——————【Tarjan 求强连通分量个数】
Road Networks Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit Stat ...
- Electricity POJ - 2117 + SPF POJ - 1523 去除割点后求强连通分量个数问题
Electricity POJ - 2117 题目描述 Blackouts and Dark Nights (also known as ACM++) is a company that provid ...
- HDU - 3836 Equivalent Sets (强连通分量+DAG)
题目大意:给出N个点,M条边.要求你加入最少的边,使得这个图变成强连通分量 解题思路:先找出全部的强连通分量和桥,将强连通分量缩点.桥作为连线,就形成了DAG了 这题被坑了.用了G++交的,结果一直R ...
- HDU1269迷宫城堡(裸Tarjan有向图求强连通分量个数)
迷宫城堡Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- HDU 1827 Summer Holiday(tarjan求强连通分量+缩点构成新图+统计入度+一点贪心思)经典缩点入门题
Summer Holiday Time Limit: 10000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- 求强连通分量模板(tarjan算法)
关于如何求强连通分量的知识请戳 https://www.byvoid.com/blog/scc-tarjan/ void DFS(int x) { dfn[x]=lowlink[x]=++dfn_cl ...
- tarjan求强连通分量+缩点+割点以及一些证明
“tarjan陪伴强联通分量 生成树完成后思路才闪光 欧拉跑过的七桥古塘 让你 心驰神往”----<膜你抄> 自从听完这首歌,我就对tarjan开始心驰神往了,不过由于之前水平不足,一 ...
- Tarjan求强连通分量,缩点,割点
Tarjan算法是由美国著名计算机专家发明的,其主要特点就是可以求强连通分量和缩点·割点. 而强联通分量便是在一个图中如果有一个子图,且这个子图中所有的点都可以相互到达,这个子图便是一个强连通分量,并 ...
- tarjan求强连通分量+缩点+割点/割桥(点双/边双)以及一些证明
“tarjan陪伴强联通分量 生成树完成后思路才闪光 欧拉跑过的七桥古塘 让你 心驰神往”----<膜你抄> 自从听完这首歌,我就对tarjan开始心驰神往了,不过由于之前水平不足,一 ...
随机推荐
- 《javascript设计模式》笔记之第十二章:装饰者模式
一.装饰者模式的作用 为函数或者对象的方法添加一些行为. 二.装饰者模式的原理 装饰者模式不是直接修改对象,而是以要修改的对象为基础,新建一个对象.不过这个新建的对象看起来就像在原对象的基础上 ...
- 七,JOBC数据库编程
七,JOBC数据库编程 七,JOBC数据库编程 一,java数据库编程步骤 1,将数据库驱动包考入lib目录: 2,加载驱动--整个操作数据库程序运行期间只需要加载一次 Class.forName(& ...
- Python网络编程中的服务器架构(负载均衡、单线程、多线程和同步、异步等)
这篇文章主要介绍服务器架构. 网络服务需要面对两个挑战. 第一个问题是核心挑战,要编写出能够正确处理请求并构造合适响应的代码. 第二个挑战是如何将网络代码部署到随系统自动启动的Windows服务或者是 ...
- HangFire 定时任务
https://www.cnblogs.com/ecin/p/6201262.html#%E5%9F%BA%E4%BA%8E%E9%98%9F%E5%88%97%E7%9A%84%E4%BB%BB%E ...
- Kendo MVVM 数据绑定(四) Disabled/Enabled
Kendo MVVM 数据绑定(四) Disabled/Enabled Disabled 和 Enabled 绑定可以根据 ViewModel 的某个属性值的 true,false 来设置 DOM 元 ...
- 不小心踩到的XMAPP的N种问题
1.在win10上的xampp集成环境中安装mongo扩展 按照网上搜索的下载对应文件后,在phpinfo里面还是找不到mongo的扩展信息,后面也是请教同事帮忙解决: http://www.theg ...
- java面试题(杨晓峰)---第一讲谈谈你对java平台的理解
本人总结: 面向对象(封装,继承,多态) 平台无关性(jvm运行,class文件) 语言(泛型,lambda) 类库(集合,并发,网络,io/nio) jre(java运行环境,JVM,类库) JDK ...
- Caused by: java.lang.IllegalStateException: javax.websocket.server.ServerContainer not available
java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.co ...
- BZOJ 3992: [SDOI2015]序列统计 NTT+快速幂
3992: [SDOI2015]序列统计 Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 1155 Solved: 532[Submit][Statu ...
- SAP CRM和C4C的客户主数据修改历史记录查询
SAP CRM 随便修改一个字段,比如给Search Term维护值"webpack": Change History assignment block里显示出了这条修改记录: 根 ...