无向连通图求割边(桥)hdu4738
来源:互联网 发布:php二维数组去除重复 编辑:程序博客网 时间:2024/05/06 11:48
点击打开链接
题目链接: hdu 4738
题目大意: 曹操有N个岛,这些岛用M座桥连接起来
每座桥有士兵把守(也可能没有)
周瑜想让这N个岛不连通,但只能炸掉一座桥
并且炸掉一座桥需要派出不小于守桥士兵数的人去
解题思路: 首先判断图是否连通,不连通则不需要去炸桥,输出0
图连通,则可以用Tarjan找割边
割边不存在输出-1表示不能达到目的
找到所有的割边,只需要炸掉其中守兵数最少的桥即可
PS: 桥的守兵数为0时,也需要派出一个人去炸桥!
#include"string.h"#include"stdio.h"#include"iostream"#define M 1111#define inf 999999999using namespace std;struct st{ int u,v,w,next;}edge[M*M*2];int head[M],dfn[M],low[M],bridge[M],n,t,index,num,mini,flag;void init(){ t=0; memset(head,-1,sizeof(head));}void add(int u,int v,int w){ edge[t].u=u; edge[t].v=v; edge[t].w=w; edge[t].next=head[u]; head[u]=t++;}void tarjan(int u,int id){ dfn[u]=low[u]=++index; int i; for(i=head[u];i!=-1;i=edge[i].next) { if(i==(1^id))continue; int v=edge[i].v; if(!dfn[v]) { tarjan(v,i); low[u]=min(low[u],low[v]); if(low[v]>dfn[u]) { bridge[num++]=i; if(mini>edge[i].w) mini=edge[i].w; } } low[u]=min(low[u],dfn[v]); }}void solve(){ index=num=flag=0; memset(dfn,0,sizeof(dfn)); memset(low,0,sizeof(low)); for(int i=1;i<=n;i++) { if(!dfn[i]) { flag++; tarjan(i,-1); } }}int main(){ int m; while(scanf("%d%d",&n,&m),m||n) { init(); while(m--) { int a,b,c; scanf("%d%d%d",&a,&b,&c); add(a,b,c); add(b,a,c); } mini=inf; solve(); if(flag>1) printf("0\n"); else if(num==0) printf("-1\n"); else { if(mini==0) printf("1\n"); else printf("%d\n",mini); } }}
0 0
- 无向连通图求割边(桥)hdu4738
- hdu4738 无向图求桥
- hdu4738 Caocao's Bridges 无向图 tarjan 求桥
- hdu4738(求一个无向图的桥的最小值)
- 无向图求桥 hdu4738 Caocao's Bridges
- tarjan找桥,找割点,无向图的最小割权边--hdu4738(2013杭州网络赛)
- ZOJ 2588 Burning Bridges(无向连通图求割边)
- 无向连通图求割点和桥
- 无重边连通无向图求割点和桥
- 无向图连通度(割)
- 无向连通图中求割点集
- eoj 1816. 连通(无向图是否连通判定)
- 无向图连通分支
- 无向连通图的割点,割边(桥),双连通分量。
- 无向连通图的割点、桥
- zoj Burning Bridges 无向连通图 求割点 桥 tarjan
- 无向连通图的割点和桥
- 无向连通图 割点 桥 模板
- 足球
- XPE常见问题FAQ
- 大数据简介
- 为爱伤心为你痛,
- HDU 1520 Anniversary party / 树形DP水题!!!
- 无向连通图求割边(桥)hdu4738
- Android API Guides 之 App Components(5) - Activities - Loaders
- Servlet跳转有两种方式
- CF:Line to Cashier
- Ubuntu9.10 下安装GCC 4.8.2
- 海淀驾校学科目二及考试过程
- 英特尔联手Cloudera 竞争对手该紧张了
- UE4学习笔记(一): 基本概念
- Java接口设计模式