hdu4738Caocao's Bridges
什么?有人要炸我的桥?!D飞他(心疼周瑜大都督)
这个就是求割边/桥了。
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std; int n,m;
struct node
{
int x,y,d,t,next;
}a[];int len,last[];
void ins(int x,int y,int d,int t)
{
len++;
a[len].x=x;a[len].y=y;a[len].d=d;a[len].t=t;
a[len].next=last[x];last[x]=len;
} int z,dfn[],low[];
int top,sta[];
int bp,bridge[];
void tarjan(int x,int pre)
{
dfn[x]=low[x]=++z;
sta[++top]=x;
for(int k=last[x];k;k=a[k].next)
{
int y=a[k].y;
if(dfn[y]==)
{
tarjan(y,k);
low[x]=min(low[x],low[y]);
}
else if(a[pre].t!=a[k].t)
low[x]=min(low[x],dfn[y]);
}
if(dfn[x]==low[x])
{
if(pre!=)
bridge[++bp]=pre;
int i;
do{
i=sta[top];top--;
}while(i!=x);
}
}
int main()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n==&&m==)break; int x,y,d;
len=;memset(last,,sizeof(last));
for(int i=;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&d);
ins(x,y,d,i);ins(y,x,d,i);
} z=top=bp=;
memset(dfn,,sizeof(dfn));
memset(low,,sizeof(low));
tarjan(,); bool bk=true;
for(int i=;i<=n;i++)
if(dfn[i]==){bk=false;break;}
if(bk==false){printf("0\n");continue;} int ans=(<<);
for(int i=;i<=bp;i++)
ans=min(ans,a[bridge[i]].d);
printf("%d\n",(ans==(<<))?-:((ans==)?:ans));
}
return ;
}
hdu4738Caocao's Bridges的更多相关文章
- hdu 4738 Caocao's Bridges 图--桥的判断模板
		
Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
 - POJ2288 Islands and Bridges
		
Description Given a map of islands and bridges that connect these islands, a Hamilton path, as we al ...
 - 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) ...
 - ZOJ 2588 Burning Bridges(求含重边的无向连通图的割边) - from lanshui_Yang
		
Burning Bridges Time Limit: 5 Seconds Memory Limit: 32768 KB Ferry Kingdom is a nice little country ...
 - zoj 2588 Burning Bridges【双连通分量求桥输出桥的编号】
		
Burning Bridges Time Limit: 5 Seconds Memory Limit: 32768 KB Ferry Kingdom is a nice little cou ...
 - hdoj 4738 Caocao's Bridges【双连通分量求桥】
		
Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
 - bzoj 2095: [Poi2010]Bridges [混合图欧拉回路]
		
2095: [Poi2010]Bridges 二分答案,混合图欧拉路判定 一开始想了一个上下界网络流模型,然后发现不用上下界网络流也可以 对于无向边,强制从\(u \rightarrow v\),计算 ...
 - Luogu4655 [CEOI2017]Building Bridges
		
Luogu4655 [CEOI2017]Building Bridges 有 \(n\) 根柱子依次排列,每根柱子都有一个高度.第 \(i\) 根柱子的高度为 \(h_i\) . 现在想要建造若干座桥 ...
 
随机推荐
- enc28j60网卡驱动模块添加进linux内核,Kconfig,Makefile配置过程
			
这里是要把http://www.cnblogs.com/hackfun/p/6260396.html中的enc28j60网卡驱动模块,添加到2.6.22.6内核中,这个模块代码不需要任何修改.只需要在 ...
 - js 性能调试
			
今天有幸偶遇我早就神往已久的性能调试问题. 原来js调试工具里面有可以记录每个方法的执行时间的功能,站在此功能的肩膀上就可以对自己的程序性能.瓶颈了如指掌,就可以针对性的,瞄准目标,斩草除根,以绝后患 ...
 - VS2013支持多字节
			
使用插件 下载地址:https://www.microsoft.com/zh-cn/search/DownloadResults.aspx?rf=sp&q=mbcs
 - 【技术累积】【线】【java】【2】AOP
			
思维导图 基础概念 翻译:面向切面编程,或面向方面编程: 是OOP的重要补充: 切面:传统的OOP构建的是对象之间的关系,是一种垂直的关系:假设,OOP程序是一个圆筒,那么与业务或逻辑无关的东西,比如 ...
 - CAD设置当前显示的光标(com接口VB语言)
			
主要用到函数说明: MxDrawXCustomFunction::Mx_SetCursor 设置当前显示的光标,光标可以从cur文件加载,详细说明如下: 参数 说明 CString sCursorFi ...
 - mysql异地备份方案经验总结
			
Mysql 数据库异地备份脚本 实验环境:关闭防火墙不然不能授权登录 Mysql-server:192.168.30.25 Mysql-client: 192.168.30.24 实验要求:对mys ...
 - react 子组件给父组件传值
			
import React from 'react'import '../page1/header.css'import { Table } from 'antd'import Child from ' ...
 - [luogu2591 ZJOI2009] 函数
			
传送门 Solution 画图找规律.. Code //By Menteur_Hxy #include <cstdio> #define min(a,b) ((a)>(b)?(b): ...
 - SLF4J和Logback和Log4j和Logging的区别与联系
			
本文转载自:一个著名的日志系统是怎么设计出来的?(作者:刘欣) 前言 Java帝国在诞生之初就提供了集合.线程.IO.网络等常用功能,从C和C++领地那里吸引了大量程序员过来加盟,但是却有意无意地忽略 ...
 - H5  坑
			
document.addEventListener("touchmove",function(e){e.preventDefault();},false); 防止滑动时整屏页面移动 ...