http://acm.hdu.edu.cn/showproblem.php?pid=4738

  求得是边权最小的割边,和求割点类似用tarjin,但要注意的是不能走从父亲过来的那一条边,在割点里那样理解没错但放在求割边就不对了,因为割点一旦被除去相邻的边就都没了。割边却只能除去一条边。当low[v]>dfn[u]说明当前的边是割边,相等的时候不是,因为割去(u,v)之后(u,v)之间还有另外的边存在。

  此外如果不是连通图直接输出0,如果答案是0要输出1,因为要有人去炸桥。

  

 #include<iostream>
#include<cstdio>
#include<vector>
#include<cstring>
using namespace std;
#define LL long long
#define pb push_back
#define pii pair<int,int>
#define mp make_pair
const int maxn=;
struct Edge{
int v,w,next;
}e[];
int first[maxn],tot;
void add(int u,int v,int w){
e[tot].v=v;
e[tot].w=w;
e[tot].next=first[u];
first[u]=tot++;
}
int dfn[maxn],low[maxn],root,sum,ans;
bool vis[maxn];
void dfs(int u,int last){
dfn[u]=low[u]=sum++;
vis[u]=;
int son=;
for(int i=first[u];i!=-;i=e[i].next){
int v=e[i].v,w=e[i].w;
if(i==(^last)) continue;
if(vis[v]){
low[u]=min(low[u],dfn[v]);
}
else{
dfs(v,i);
low[u]=min(low[u],low[v]);
if(low[v]>dfn[u]){
ans=min(ans,w);
}
}
}
}
int main(){
int n,m,i,j,u,v,w;
while(cin>>n>>m){
if(n==&&m==) break;
tot=;
memset(first,-,sizeof(first));
while(m--){
scanf("%d%d%d",&u,&v,&w);
add(u,v,w),add(v,u,w);
}
sum=;
ans=;
memset(vis,,sizeof(vis));
int p=;
for(i=;i<=n;++i){
if(!vis[i]){
p++;
root=i;
dfs(i,-);
}
}
if(p>){
cout<<<<endl;
continue;
}
/*for(i=1;i<=n;++i){
cout<<dfn[i]<<' '<<low[i]<<endl;
}*/
if(ans==) ans=-;
if(ans==)ans=;
cout<<ans<<endl;
}
return ;
}

hdu-4738-tarjin/割边的更多相关文章

  1. HDU 4738——Caocao's Bridges——————【求割边/桥的最小权值】

     Caocao's Bridges Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

  2. HDU 4738 Caocao&#39;s Bridges(找割边)

    HDU 4738 Caocao's Bridges 题目链接 注意几个坑,可能重边,至少要派一个人去炸,没有连通的时候就不用炸了 代码: #include <cstdio> #includ ...

  3. HDU 4738 Caocao's Bridges(Tarjan求桥+重边判断)

    Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  4. Hdu 4738 Caocao's Bridges (连通图+桥)

    题目链接: Hdu 4738 Caocao's Bridges 题目描述: 有n个岛屿,m个桥,问是否可以去掉一个花费最小的桥,使得岛屿边的不连通? 解题思路: 去掉一个边使得岛屿不连通,那么去掉的这 ...

  5. 2013杭州网赛 1001 hdu 4738 Caocao's Bridges(双连通分量割边/桥)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4738 题意:有n座岛和m条桥,每条桥上有w个兵守着,现在要派不少于守桥的士兵数的人去炸桥,只能炸一条桥 ...

  6. HDU 4738 割边

    Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  7. Hdu 4738【tanjan求无向图的桥】割边判定定理 dfn[x] < low[y]

    题目: 曹操在长江上建立了一些点,点之间有一些边连着.如果这些点构成的无向图变成了连通图,那么曹操就无敌了.刘备为了防止曹操变得无敌,就打算去摧毁连接曹操的点的桥.但是诸葛亮把所有炸弹都带走了,只留下 ...

  8. HDU 4738 Caocao's Bridges(割边)

    乍一看一个模板题,仔细一看还是模板题,但是三个坑.1,不是连通图,放0个.2 守卫为0,放1个. 3注意重边. #include<iostream> #include<cstdio& ...

  9. HDU 4738 Caocao's Bridges taijan (求割边,神坑)

    神坑题.这题的坑点有1.判断连通,2.有重边,3.至少要有一个人背*** 因为有重边,tarjan的时候不能用子结点和父节点来判断是不是树边的二次访问,所以我的采用用前向星存边编号的奇偶性关系,用^1 ...

  10. hdu 4738 Caocao's Bridges(割边)

    题目链接 用tarjan求桥上的最小权值 #include<bits/stdc++.h> #define ll long long int using namespace std; inl ...

随机推荐

  1. (转) 深度强化学习综述:从AlphaGo背后的力量到学习资源分享(附论文)

    本文转自:http://mp.weixin.qq.com/s/aAHbybdbs_GtY8OyU6h5WA 专题 | 深度强化学习综述:从AlphaGo背后的力量到学习资源分享(附论文) 原创 201 ...

  2. Docker1之Container

    Document An image is a lightweight, stand-alone, executable package that includes everything needed ...

  3. 并发编程之IO模型

    一.阻塞IO(blocking IO) from concurrent.futures import ThreadPoolExecutor import socket server = socket. ...

  4. JMeter 生成精度度为分钟的时间戳文件名

    import java.util.Calendar; import java.util.Date; import java.util.TimeZone; import java.text.Simple ...

  5. JUnit 4 Vs TestNG比较

    JUnit 4和TestNG都是Java中非常受欢迎的单元测试框架.两种框架在功能上看起来非常相似. 哪一个更好? 在Java项目中应该使用哪个单元测试框架? 下面表中概括了JUnit 4和TestN ...

  6. 总结react native 事件机制

    React 事件机制 一个组件的所有事件会使用统一的事件监听器,绑定到组件的最外层,那么如何使用? bind方法,绑定并且可以传递参数 <TouchableOpacity onPress={th ...

  7. win10 安装keras

    1.安装Python环境 建议安装Anconda3 ,4.2.0版本 下载地址: https://repo.continuum.io/archive/index.html 或 https://mirr ...

  8. [osg][osgEarth][原]基于OE自定义自由飞行漫游器(初级版)

    由于受够了OE的漫游器,想搞个可以在全球飞行的漫游器,所以就做了一个: 请无视我的起名规则······ 类头文件:EarthWalkManipulator.h #pragma once //南水之源 ...

  9. Calendar的使用注意

    一.Calendar和GregorianCalendar的关系 GregorianCalendar的一点: // 初始化 Gregorian 日历 // 使用当前时间和日期 // 默认为本地时间和时区 ...

  10. 如何选择合适的 DDoS 防御服务

    如果你没有对自己的站点采取一些必要的保护措施,将会使它直接暴露于 DDoS 攻击的风险下且无任何招架之力.你应该对法国大选日 knocked out 网站被 DDoS 攻击和 2016 年十月份时候美 ...