牛客小白月赛12 I 华华和月月逛公园 Tarjan算法求隔边
题目链接:https://ac.nowcoder.com/acm/contest/392/I
题意:给你一个连通的无向图,问图的割边有多少条
输入:N,M分别是点数和边数
之后M行每行两个正整数u,v表示无向边
强连通分量:如果一个有向图任意两点都是互相可达的,这个图就是强连通分量
不过我们这个题是无向图,所以要改一点
这个博客讲的还蛮好的:https://blog.csdn.net/mengxiang000000/article/details/51672725
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int inf=<<;
const int maxn=1e5+;
const double pi=acos(-);
const int mod=;
int n,m,cnt,ans,dfn[maxn],low[maxn];
vector<int> v[maxn];
inline void read(int &x){
char ch=x=;
while(!isdigit(ch))
ch=getchar();
while(isdigit(ch))
x=x*+ch-'',ch=getchar();
}
void Tarjan(int now,int fa){
dfn[now]=low[now]=++cnt;
for(int i=;i<v[now].size();i++){
if(!dfn[v[now][i]]){//如果这个点还没有被走过,就走这个点,如果走过dfn肯定被定义过,直接用dfn判断,省一个vis数组
Tarjan(v[now][i],now);//对这个点再用Tarjan算法,并记得把父亲给传过去
low[now]=min(low[now],low[v[now][i]]);//等走完之后再来更新本节点的low值,没走过就是两个low比
if(low[v[now][i]]>dfn[now]) ans++;//回溯之后如果now和其子节点在同一个强连通分量里,子节点的low值应该更新为
//now的dfn值(因为是从now节点更新的,一个强连通分量里仅有一个特殊的点,就是起始点,其他店的low值都会更新为
//它的,所以若不同则说明不再一个强连通分量里 )
}
else if(v[now][i]!=fa) low[now]=min(low[now],dfn[v[now][i]]);
//如果已经走过且不是父亲的话(因为是无向边所以还要标记父亲),那就更新节点的low值吧
}
}
int main(){
scanf("%d%d",&n,&m);
int x,y;
int t=m;
while(t--){
scanf("%d%d",&x,&y);
v[x].push_back(y);
v[y].push_back(x);
}
Tarjan(,);//因为题目说过保证联通,所以不需要再用for循环
//cout<<ans<<" "<<m<<endl;
cout<<m-ans<<endl;
return ;
}
牛客小白月赛12 I 华华和月月逛公园 Tarjan算法求隔边的更多相关文章
- 牛客小白月赛12 I 华华和月月逛公园 (tarjian 求桥)
链接:https://ac.nowcoder.com/acm/contest/392/I 来源:牛客网 华华和月月逛公园 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K, ...
- 牛客小白月赛12 H 华华和月月种树 (离线dfs序+线段树)
链接:https://ac.nowcoder.com/acm/contest/392/H 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 131072K,其他语言2621 ...
- 牛客小白月赛12 H 华华和月月种树
题目链接: 题意:有三个操作 操作 1:表示节点 i 长出了一个新的儿子节点,权值为0,编号为当前最大编号 +1(也可以理解为,当前是第几个操作 1,新节点的编号就是多少). 操作 2:表示华华上线做 ...
- 牛客小白月赛12 F 华华开始学信息学 (分块+树状数组)
链接:https://ac.nowcoder.com/acm/contest/392/F来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 32768K,其他语言65536K ...
- 牛客网 牛客小白月赛12 B.华华教月月做数学-A^B mod P-快速幂+快速乘
链接:https://ac.nowcoder.com/acm/contest/392/B来源:牛客网 华华教月月做数学 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其 ...
- 牛客小白月赛12 C 华华给月月出题 (积性函数,线性筛)
链接:https://ac.nowcoder.com/acm/contest/392/C 来源:牛客网 华华给月月出题 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K, ...
- 牛客小白月赛12 H(dfs序+线段树),F(分块思想+bit),J(二分)
H 华华和月月种树 链接:https://ac.nowcoder.com/acm/contest/392/H 思路:先得到整棵树最终的形态,在这棵树上进行三种操作,用dfs跑下,第二种操作就直接对最终 ...
- 牛客小白月赛12 J 月月查华华的手机 (序列自动机模板题)
链接:https://ac.nowcoder.com/acm/contest/392/J 来源:牛客网 题目描述 月月和华华一起去吃饭了.期间华华有事出去了一会儿,没有带手机.月月出于人类最单纯的好奇 ...
- 牛客小白月赛12 D 月月给华华出题 (欧拉函数,数论,线筛)
链接:https://ac.nowcoder.com/acm/contest/392/D 来源:牛客网 月月给华华出题 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 131072K, ...
随机推荐
- Elasticsearch学习笔记(三)聚合分析Agg
一.设置fielddata PUT /index/_mapping/type { "properties":{ "fieldName" ...
- Spark入门到精通--(第一节)Spark的前世今生
最近由于公司慢慢往spark方面开始转型,本人也开始学习,今后陆续会更新一些spark学习的新的体会,希望能够和大家一起分享和进步. Spark是什么? Apache Spark™ is a fast ...
- java之项目构建工具Gradle
介绍 Java 作为一门世界级主流编程语言,有一款高效易用的项目管理工具是 java 开发者共同追求的心愿和目标.显示 2000 年的 Ant,后有 2004 年的 Maven 两个工具的诞生,都在 ...
- 设置mac笔记本为固定ip
第一步.点击Mac桌面“系统偏好设置”图标 第二步.在打开的系统偏好设置界面,点击互联网和无线选项中的“网络” 第三步.在网络界面,点击“高级”,进入高级设置. 第四步.在以太网设置界面,在TCP/ ...
- 从Win32程序中的主函数中获取命令行参数
在标准C或者Win32控制台程序的main函数中,它们都有两个参数:"argc" 和 "argv",如下所示: int main(int argc, char ...
- Py't'hon之csv,ini&序列化,反序列化
1.csv文件简介 csv是一个被行分隔符,列分隔符划分成行和列的文本 csv不指定字符编码 行分隔符为\r\n,最后一行可以没有换行符 列分隔符常为逗号和制表符 每一行称之为record from ...
- count列表中字符出现的次数
如何count列表中字符出现的次数?可以将其生成一个字典.key是列表中的字符串,value是出现的次数 例如gen = [2, 3, 4, 5, 6, 7, 3, 4, 5, 6, 7, 8, 4, ...
- Sitecore Aliases
Sitecore别名 出于各种原因,有时您希望页面URL简短且易于记忆.例如,如果您在网站上运行任何广告系列或某些广告,则需要轻松记住该网址.在Sitecore中,有一种方法可以为名为Sitecore ...
- java的四大特性
java的四大特性是:封装.继承.多态,抽象.
- index read-only
系统重启后,Eleastisearch6.5.0在给 Eleastisearch 更新索引的时候报了一个错误:ClusterBlockException[blocked by: [FORBIDDEN/ ...