Caocao's Bridges---hdu4738(桥)
http://acm.hdu.edu.cn/showproblem.php?pid=4738
题就是求出所有的桥,然后输出桥的权值的最小值。
如果一开始是不连通的,输出0.
图有重边,需要处理, 不能用邻接矩阵。、、、因为邻接矩阵不能表示两点之间有2条路,如果有两条路就不能算是桥;
还有如果取到的最小值是0的话,要输出1,表示要派一个人过去。
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<queue>
#include<algorithm>
using namespace std;
#define N 1100
#define INF 0xfffffff struct node
{
int x,y;
} bridge[N];
struct Edge
{
int v, c, next;
} e[N*N];
int low[N], cnt, dfn[N], n, m, f[N], maps[N][N], head[N], Min;
int Time, nBridge;
void Init()
{
Time = cnt = nBridge = ;
memset(low, , sizeof(low));
memset(dfn, , sizeof(dfn));
memset(bridge, , sizeof(bridge));
memset(f, , sizeof(f));
memset(maps, -, sizeof(maps));
memset(head, -, sizeof(head));
}
void add(int u, int v, int c)
{
e[cnt].v = v;
e[cnt].c = c;
e[cnt].next = head[u];
head[u] = cnt++;
}
void Tajar(int u, int father)
{
f[u]=father;
low[u]=dfn[u]=++Time;
int k=;
for(int i=head[u]; i!=-; i=e[i].next)
{
int v=e[i].v;
if(father==v&&!k)
{
k++;
continue;
}
if(!dfn[v])
{
Tajar(v, u);
low[u]=min(low[u],low[v]);
if(low[v]>dfn[u])
Min=min(Min, e[i].c);
}
else
{
low[u]= min(low[u], dfn[v]);
} }
} int main()
{
int a,b,c;
while(scanf("%d %d",&n,&m), n+m)
{
Init();
for(int i=; i<=m; i++)
{
scanf("%d %d %d",&a,&b,&c);
add(a, b, c);
add(b, a, c);
}
int k=;
Min=INF;
for(int i=; i<=n; i++)
{
if(!dfn[i])
{
Tajar(i,-);
k++;
}
}
if(k>)
{
printf("0\n");
continue;
}
if(Min==)
Min=;
else if(Min==INF)
Min=-;
printf("%d\n", Min);
}
return ;
}
Caocao's Bridges---hdu4738(桥)的更多相关文章
- 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: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- hdu 4738 Caocao's Bridges(桥的最小权值+去重)
http://acm.hdu.edu.cn/showproblem.php?pid=4738 题目大意:曹操有一些岛屿被桥连接,每座都有士兵把守,周瑜想把这些岛屿分成两部分,但他只能炸毁一条桥,问最少 ...
- 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,注意重边不是桥!
Caocao's Bridges 题意:曹操赤壁之战后卷土重来,他在n个小岛之间建立了m座桥.现在周瑜只有一颗炮弹,他只能炸毁一座桥使得这些岛屿不再连通.每座桥上都可能会有士兵把手,如果想安放***那 ...
- HDU 4738 Caocao's Bridges(Tarjan求桥+重边判断)
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) ...
- 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 (连通图+桥)
题目链接: Hdu 4738 Caocao's Bridges 题目描述: 有n个岛屿,m个桥,问是否可以去掉一个花费最小的桥,使得岛屿边的不连通? 解题思路: 去掉一个边使得岛屿不连通,那么去掉的这 ...
随机推荐
- CSS导入使用及引用的两种方法
方法一<link rel="stylesheet" type="text/css" href="test.css"> 方法二&l ...
- (转)mysql执行计划分析
转自:https://www.cnblogs.com/liu-ke/p/4432774.html MySQL执行计划解读 Explain语法 EXPLAIN SELECT …… 变体: 1. EX ...
- idea-java项目配置
导入项目后,工程结构配置: 如果不加入tomcat 运行库,项目会报servlet jar 找不到的异常 tomcat服务器配置
- linux系统中,查看当前系统中,都在监听哪些端口
需求描述: 查看当前系统中都监听着哪些的端口,用netstat命令,在此记录下 操作过程: 1.查看系统中都在监听哪些端口 [root@testvm home]# netstat -ntl Activ ...
- linux系统中RPM包的通用命名规则
http://blog.csdn.net/kexiuyi/article/details/53292358
- hdu 5038 水题 可是题意坑
http://acm.hdu.edu.cn/showproblem.php?pid=5038 就是求个众数 这个范围小 所以一个数组存是否存在的状态即可了 可是这句话真恶心 If not all ...
- try catch finally的执行顺序
1.将预见可能引发异常的代码包含在try语句块中. 2.如果发生了异常,则转入catch的执行.catch有几种写法: catch 这将捕获任何发生的异常. catch(Exception e) 这将 ...
- jQuery 选择器实例
语法 描述 $(this) 当前 HTML 元素 $("p") 所有 <p> 元素 $("p.intro") 所有 class="intr ...
- hadoop程序MapReduce之average
需求:求多门课程的平均值. 样板:math.txt zhangsan 90 lisi 88 wanghua 80 china.txt zhangsan 80lisi 90wanghua 88 输出:z ...
- 关于js中定时器的返回值问题
在js中,我们常常会用到定时器来处理各种各样的问题,当我们需要清除定时器的时候,我们常常会定义一个值来接受定时器的返回值,然后再把定义好的这个值写到清除定时器的括弧后面,如: var times = ...