[hdu4738]求桥模板
oj问题,待修改,存档。
#include<stdio.h>
#include<iostream>
#include<cstdio>
#include<stack>
using namespace std;
#define maxn 111111
#define inf 11111111
stack<int>s;
int dfn[maxn],low[maxn];
int iscut[maxn];
int cnt,scc,ans,clc;
struct edge{
int to,next,w,id;
}e[maxn*];
int head[maxn];
void add(int u,int v,int w,int id){
e[cnt].to=v;e[cnt].next=head[u];e[cnt].w=w;e[cnt].id=id;
head[u]=cnt++;
}
void init(){
memset(dfn,,sizeof dfn);
memset(low,,sizeof low);
memset(head,-,sizeof head);
memset(iscut,,sizeof iscut);
cnt=;scc=,clc=;
}
void dfs(int u,int fa){
low[u]=dfn[u]=++clc;
for(int i=head[u];i!=-;i=e[i].next){
int v=e[i].to;
if(e[i].id==fa)continue;
if(!dfn[v]){
dfs(v,e[i].id);
low[u]=min(low[u],low[v]);
if(low[v]>dfn[u]){
ans=min(ans,e[i].w);
}
}
else low[u]=min(low[u],dfn[v]);
}
}
int n,m,a,b,c;
int main(){
while(~scanf("%d%d",&n,&m)){
if(!n&&!m)break;
init();
for(int i=;i<=m;++i){
scanf("%d%d%d",&a,&b,&c);
add(a,b,c,i);
add(b,a,c,i);
}
int blo=;ans=inf;
for(int i=;i<=n;++i)
if(!dfn[i]){
blo++;
dfs(i,-);
}
if(blo>)printf("0\n");
else if(!ans)printf("1\n");
else if(ans==inf)printf("-1\n");
else printf("%d\n",ans);
}
return ;
}
[hdu4738]求桥模板的更多相关文章
- poj3694(lca + tarjan求桥模板)
题目链接: http://poj.org/problem?id=3694 题意: 给出一个 n 个节点 m 条边的图, 然后有 q 组形如 x, y 的询问, 在前面的基础上连接边 x, y, 输出当 ...
- UVA 796 Critical Links(模板题)(无向图求桥)
<题目链接> 题目大意: 无向连通图求桥,并将桥按顺序输出. 解题分析: 无向图求桥的模板题,下面用了kuangbin的模板. #include <cstdio> #inclu ...
- Tarjan求强连通分量、求桥和割点模板
Tarjan 求强连通分量模板.参考博客 #include<stdio.h> #include<stack> #include<algorithm> using n ...
- HDU4738:Caocao's Bridges(求桥)
Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 求无向图的割点和桥模板(tarjan)
一.基本概念 1.桥:若无向连通图的边割集中只有一条边,则称这条边为割边或者桥 (离散书上给出的定义.. 通俗的来说就是无向连通图中的某条边,删除后得到的新图联通分支至少为2(即不连通: 2.割点:若 ...
- tarjan求桥、割顶
若low[v]>dfn[u],则(u,v)为割边.但是实际处理时我们并不这样判断,因为有的图上可能有重边,这样不好处理.我们记录每条边的标号(一条无向边拆成的两条有向边标号相同),记录每个点的父 ...
- 【HDU4612】 双连通分量求桥
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4612 题目大意:给你一个无向图,问你加一条边后最少还剩下多少多少割边. 解题思路:好水的一道模板题.先 ...
- tarjan算法求桥双连通分量 POJ 3177 Redundant Paths
POJ 3177 Redundant Paths Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12598 Accept ...
- Tarjan 求桥,割,强连通
最近遇到了这种模板题,记录一下 tarjan求桥,求割 #include <bits/stdc++.h> using namespace std; #define MOD 99824435 ...
随机推荐
- CGI模式下的bug
一般情况下$_SERVER['PHP_SELF'] 与 $_SERVER['SCRIPT_NAME'] 没有什么区别,但是如果PHP是以CGI模式运行的话两者就有差异 建议使用$_SERVER[' ...
- ios何时使用self.
本文转载至 http://blog.csdn.net/lvxiangan/article/details/27204265 何时使用self.在网上搜索或者论坛里的回复大多都是简简单单的说这与 ...
- Mybatis中resultMap的基础配置
一.概述 resultMap 元素是 MyBatis 中最重要最强大的元素.它就是让你远离 90%的需要从结果集中取出数据的 JDBC 代码的那个东西,而且在一些情形下允许你做一些 JDBC 不支持的 ...
- 九度OJ 1072:有多少不同的面值组合? (计数)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3112 解决:1591 题目描述: 某人有8角的邮票5张,1元的邮票4张,1元8角的邮票6张,用这些邮票中的一张或若干张可以得到多少种不同的 ...
- MarkdownPad - The Markdown Editor for Windows http://markdownpad.com/
MarkdownPad - The Markdown Editor for Windows http://markdownpad.com/
- MethodDispatcher—Cherrypy对REST的支持
前言 CherryPy是Python的一个Web框架,通过MethodDispatcher内建了对REST的支持,而且使用非常方便. 示例 首先,我们需要有一个符合REST风格的资源(Resource ...
- 【iOS开发-63】Unknown type name "CGRect",did you mean "Rect"?的解决方式
出现这个问题的童鞋,差点儿都是由于用了Xcode6. 原因:在Xcode6之前,创建的文件系统会自己主动为用户导入Foundation.h和UIKit.h文件,可是最新的Xcode6仅仅为用户导入了F ...
- 关于SAP S4 HANA 的13个问题
SAP S/4HANA的路线图是怎样的?价格是多少?下一步还将添加哪些新模块?莫不闻专业SAP问答平台结合SAP HANA及SAP HANA应用商务套件开发全球负责人Uwe Grigoleit帮大家整 ...
- Java7、Java8 安装卸载问题
win7 系统,同时安装了JDK7和JDK8,卸载了JDK8之后,cmd命令行输入:java -version ,本以为显示java版本1.7,结果弹错:has value '1.7',but '1. ...
- Java for LeetCode 125 Valid Palindrome
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignori ...