桥的应用!

虽然以前做过强联通分量的题,但刷的很水,所以比赛的时候一直想不起来是桥的应用;

反省一下~~~学习一下!

思路,找到权值最小的桥;用tarjin算法!

代码:

 #include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 1003
using namespace std; struct edge
{
int st,ed,w,next;
}e[maxn*maxn*]; int head[maxn],dfn[maxn],low[maxn],nncount,best,num,dan; void addedge(int x,int y,int w)
{
e[num].st=x,e[num].ed=y,e[num].w=w,e[num].next=head[x],head[x]=num++;
e[num].st=y,e[num].ed=x,e[num].w=w,e[num].next=head[y],head[y]=num++;
} void tarjin(int x,int id)
{
int v;
dfn[x]=low[x]=nncount++;
for(int i=head[x]; i!=-; i=e[i].next)
{
int v=e[i].ed;
if(i==(id^)) continue;
if(dfn[v]==-)
{
tarjin(v,i);
low[x]=min(low[v],low[x]);
if(low[v]>dfn[x])
if(best>e[i].w)
best=e[i].w;
}
else low[x]=min(dfn[v],low[x]);
}
dan++;
} int main()
{
int n,m,a,b,w;
while(scanf("%d%d",&n,&m)&&(n+m))
{
memset(dfn,-,sizeof dfn);
num=,nncount=,dan=;
best=;
memset(head,-,sizeof head);
for(int i=; i<m; i++)
{
scanf("%d%d%d",&a,&b,&w);
addedge(a,b,w);
}
tarjin(,-);
if(dan<n)puts("");
else if(best==) puts("-1");
else if(best==) puts("");
else printf("%d\n",best);
}
return ;
}

hdu 4738的更多相关文章

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

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

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

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

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

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

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

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

  5. hdu 4738 Caocao's Bridges(桥的最小权值+去重)

    http://acm.hdu.edu.cn/showproblem.php?pid=4738 题目大意:曹操有一些岛屿被桥连接,每座都有士兵把守,周瑜想把这些岛屿分成两部分,但他只能炸毁一条桥,问最少 ...

  6. hdu 4738 Caocao's Bridges (tarjan求桥)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4738 题目大意:给一些点,用一些边把这些点相连,每一条边上有一个权值.现在要你破坏任意一个边(要付出相 ...

  7. 【HDU 4738 Caocao's Bridges】BCC 找桥

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4738 题意:给定一个n个节点m条边的无向图(可能不连通.有重边),每条边有一个权值.判断其连通性,若双 ...

  8. Hdu 4738【求无向图的桥】.cpp

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

  9. (连通图 Tarjan)Caocao's Bridges --HDU --4738

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=4738 题目大意:曹操有很多岛屿,然后呢需要建造一些桥梁将所有的岛屿链接起来,周瑜要做的是就是不让曹操将所 ...

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

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

随机推荐

  1. Java基础知识强化之IO流笔记42:IO流总结(图解)

    1. IO流总结(图解)

  2. flex脚本的申明

    //脚本申明的格式 <fx:Script>    <![CDATA[            ]]></fx:Script> //程序完成的时候自动调用的事件 cre ...

  3. 服务器CPU使用率过高排查与解决思路

    发现服务器的cpu使用率特别高 排查思路: -使用top或者mpstat查看cpu的使用情况# mpstat -P ALL 2 1Linux 2.6.32-358.el6.x86_64 (linux— ...

  4. ng1中 如何用双向绑定 实现单向绑定的初始时不显示双括号效果?

    ng1中 如何用双向绑定 实现单向绑定(ng-bind就可以不显示{{}})的初始时不显示双括号效果? AngularJS 实例 页面加载时防止应用闪烁: <div ng-app="& ...

  5. VS2010 测试 -普通单元测试

    http://www.cnblogs.com/rhythmK/archive/2012/04/20/2458832.html

  6. .NET垃圾回收机制 转

    在.NET Framework中,内存中的资源(即所有二进制信息的集合)分为"托管资源"和"非托管资源".托管资源必须接受.NET Framework的CLR( ...

  7. Html+CSS命名规范:

     Html+CSS命名规范: 1.样式命名: 2.样式文件命名:

  8. c#安全性、稳定性、高性能需要注重的点

    1.弱事件 2.类型安全(包括类型转换时可能的异常) 3.线程安全 5.装箱和拆箱 6.闭包传递局部变量时可能遇到的问题. 7.用于dictionary的键,要同时实现GetHashCode和Equa ...

  9. c语言全局变量与局部变量(当变量重名时)的使用情况

    在c语言中,变量有全局变量和局部变量之分,这一点和很多高级语言类似,如c#,java等.不过与c#,java中的局部变量如在全局变量作用域内则不允许与全局变量名相同,而c语言是允许这样做的.这样的做法 ...

  10. java web环境配置类型问题

    一, cmd查看jdk版本 java -version cmd查看jdk安装路径 java -verbose 二, 如果出现了上述的错误按照如下的3个步骤解决:1.首先关闭MyEclipse工作空间. ...