Caocao's Bridges
hdu4738:http://acm.hdu.edu.cn/showproblem.php?pid=4738
题意:抽象出来就是求一条边权最小的割边。
题解:直接用tarjan即可破。但是如果只注重这里你就错了,就是边权为0 的桥也要一个人去炸。
#pragma comment(linker,"/STACK:100000000,100000000")//阔栈的语句
#include <stdio.h>
#include <string.h>
#include <vector>
#define pb push_back
using namespace std;
const int maxn = ;
const int maxm = ;
struct EDGE{
int next, to, vis,w;
}edge[maxm*];//记录边,vis表示这一条边是否被访问
struct GEEDGE {
int u, to;
}geedge[maxm];//记录割边
int n,m,time,top,w,type,getot,cnt;//time是时间戳,type标记连通块,getot割边的数量,cnt边数
int head[maxn],st[maxn],dfn[maxn],low[maxn],belo[maxn];//belo[i],表示i属于哪个连通块
int start,ans1,ans,u,v,tval[maxn];
void init(){
time=top=type=getot=cnt=;
memset(head,-,sizeof(head));
memset(dfn,,sizeof(dfn));
memset(low,,sizeof(low));
memset(belo,,sizeof(belo));
}
void add(int u,int v,int w){
edge[cnt].to=v;
edge[cnt].next=head[u];
edge[cnt].vis=;
edge[cnt].w=w;
head[u]=cnt++;
}
void dfs(int u) {//可以处理重边的情况
low[u] = dfn[u] = ++time;
st[++top] = u;
for(int i = head[u];i != -;i = edge[i].next) {
if(edge[i].vis) continue;
edge[i].vis = edge[i^].vis = ;
int to = edge[i].to;
if(!dfn[to]) {
dfs(to);
low[u] = min(low[u], low[to]);
if(low[to] > dfn[u]) {//表示找到一个连通块
type++;
int v;
do {
v = st[top--];
belo[v] = type;//表示v属于第type个连通块
} while(v != to);
geedge[++getot].u = u;//记录割边的起点
geedge[getot].to = to;//记录割边的另一个点
tval[getot]=edge[i].w;
}
}
else
low[u] = min(low[u], low[to]);
}
}
int main(){
while(~scanf("%d%d",&n,&m)&&n){
init();
for(int i=;i<=m;i++){
scanf("%d%d %d",&u,&v,&w);
add(u,v,w);
add(v,u,w);
}
dfs();bool flag=false;
for(int i=;i<=n;i++){
if(!dfn[i]){
flag=true;
break;
}
}
ans1=getot;ans=;
for(int i=;i<=ans1;i++){
ans=min(ans,tval[i]);
}
if(ans==)ans=;
if(flag)ans=;
if(!ans1&&!flag)printf("-1\n");
else
printf("%d\n",ans);
}
}
Caocao's Bridges的更多相关文章
- hdu 4738 Caocao's Bridges 图--桥的判断模板
Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU 4738 Caocao's Bridges(Tarjan求桥+重边判断)
Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU 4738 Caocao's Bridges
Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- hdoj 4738 Caocao's Bridges【双连通分量求桥】
Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU 4738 Caocao's Bridges (2013杭州网络赛1001题,连通图,求桥)
Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU4738:Caocao's Bridges(求桥)
Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU 4738——Caocao's Bridges——————【求割边/桥的最小权值】
Caocao's Bridges Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
- HDU-4738 Caocao's Bridges,注意重边不是桥!
Caocao's Bridges 题意:曹操赤壁之战后卷土重来,他在n个小岛之间建立了m座桥.现在周瑜只有一颗炮弹,他只能炸毁一座桥使得这些岛屿不再连通.每座桥上都可能会有士兵把手,如果想安放***那 ...
- Hdu 4738 Caocao's Bridges (连通图+桥)
题目链接: Hdu 4738 Caocao's Bridges 题目描述: 有n个岛屿,m个桥,问是否可以去掉一个花费最小的桥,使得岛屿边的不连通? 解题思路: 去掉一个边使得岛屿不连通,那么去掉的这 ...
- HDU——4738 Caocao's Bridges
Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
随机推荐
- Qt学习之路: 国际化(上)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://devbean.blog.51cto.com/448512/244689 2D ...
- 手动创建Servlet--J2EE学习笔记
Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层. 使用 Serv ...
- NSURLConnection请求时间
在ios平台上做网络开发最常用的两个类: NSMutableURLRequest *urlRequest = [[NSMutableURLRequestalloc] initWithURL:url c ...
- CentOS7上GitHub/GitLab多帐号管理SSH Key
由于公司团队使用 GitLab 来托管代码,同时,个人在 Github 上还有一些代码仓库,可公司邮箱与个人邮箱是不同的,由此产生的 SSH key 也是不同的,这就造成了冲突 ,文章提供此类问题的解 ...
- hibernate自动建表采用UTF-8字符编码
hibernate自动建表采用UTF-8字符编码 hibernate建表默认为UTF-8编码 >>>>>>>>>>>>>& ...
- 探索开发跨平台移动App,谈Jquery Mobile 和PhoneGap应用
随着智能手机等设备的大范围普及,各形各色的移动端软件随之既出.各互联网运营商也都在抢占移动软件的占有率.不惜采用财力进行宣传推广.例如,通过手机淘宝客户端购买物品总比pc端要便宜,360手机助手下载对 ...
- asp gridview批量删除和全选
本人新手刚学asp.net 全选和删除也是引用了他人的代码试了一试可以实现,感觉很好,就发了上来. 前台代码 <asp:GridView ID="GridView1" r ...
- JSON 学习总结 <一>:什么是JSON
JSON的相关资料和博客很多,JSON无处不用,最近项目中一直要用到JSON,今天没有加班,就写下,算是对自己的总结,对JSON又一次深入的认识. 废话不多了,直接进入今天的主题: 如题:今天就介绍下 ...
- 安卓Intent(隐式)
相对于显式Intent(明确指出了目标组件名称的Intent),隐式Intent,没有明确指出目标组件名称.显式Intent直接用组件的名称定义目标组件,这种方式很直接.但是由于开发人员往往并不清楚别 ...
- LA 4329(树状数组)
题目描述: N <tex2html_verbatim_mark>(3N20000) <tex2html_verbatim_mark>ping pong players live ...