题意:

曹操在赤壁之战中被诸葛亮和周瑜打败。但他不会放弃。曹操的军队还是不擅长打水仗,所以他想出了另一个主意。他在长江上建造了许多岛屿,在这些岛屿的基础上,曹操的军队可以轻易地攻击周瑜的军队。曹操还修建了连接岛屿的桥梁。如果所有的岛屿都用桥连接起来,曹操的军队就可以很方便地部署在这些岛屿之间。周瑜无法忍受,他想毁掉曹操的一些桥梁,把一个或多个岛屿与其他岛屿分开。周瑜身上只有一颗炸弹,是诸葛亮留下的,所以他只能毁掉一座桥。周瑜必须派人带着炸弹去炸毁那座桥。桥上可能有警卫。轰炸队的士兵人数不能少于一座桥的守卫人数,否则任务就会失败。请至少计算出周瑜要派多少士兵去完成离岛任务。

题解+代码:

 1 //题解:
2 //这道题。。。。。。T_T
3 //这道题要先判断有没有桥,没有桥的话就直接输出-1
4 //如果有桥的话还要注意如果有一座桥上没有警卫,但是我们还是要派一人去炸桥
5 //所以要有两个特判,卧槽!
6 #include<stdio.h>
7 #include<string.h>
8 #include<iostream>
9 #include<algorithm>
10 #include<queue>
11 #include<map>
12 #include<vector>
13 using namespace std;
14 const int maxn = 1005;
15 const int INF=0x3f3f3f3f;
16 struct node {
17 int v, next,w;
18 }e[maxn*maxn*2+10];
19 int head[maxn], cnt;
20 bool iscut[maxn];
21 int dfn[maxn], low[maxn];
22 int num,n,m,minn;
23 inline void add_edge(int xx, int yy,int zz) {
24 e[++cnt].next = head[xx];
25 e[cnt].w=zz;
26 e[cnt].v = yy;
27 head[xx] = cnt;
28 }
29
30 inline void tarjan(int x, int in_edge) {
31 dfn[x] = low[x] = ++num;
32 for(int i = head[x]; i; i = e[i].next) {
33 int to = e[i].v;
34 if(!dfn[to]) {
35 tarjan(to, i);
36 low[x] = min(low[x], low[to]);
37 if(low[to] > dfn[x])
38 iscut[i] = iscut[i ^ 1] = true,minn=min(minn,e[i].w);
39 }
40 else if(i != (in_edge ^ 1))
41 low[x] = min(low[x], dfn[to]);
42 }
43 }
44 int main()
45 {
46 while(~scanf("%d%d",&n,&m) && (n+m))
47 {
48
49 cnt=1;
50 num=0;
51 memset(iscut,0,sizeof(iscut));
52 memset(head,0,sizeof(head));
53 memset(dfn,0,sizeof(dfn));
54 memset(low,0,sizeof(low));
55 while(m--)
56 {
57 int x,y,z;
58 scanf("%d%d%d",&x,&y,&z);
59 add_edge(x,y,z);
60 add_edge(y,x,z);
61 }
62 int flag=0;
63 minn=INF;
64 for(int i=1;i<=n;++i)
65 {
66 if(!dfn[i])
67 {
68 tarjan(i,0);
69 flag++;
70 }
71 }
72 if(flag>1)
73 {
74 printf("0\n");
75 }
76 else
77 {
78 if(minn==INF) printf("-1\n");
79 else if(minn==0) printf("1\n");
80 else printf("%d\n",minn);
81 }
82 }
83 return 0;
84 }

Caocao's Bridges HDU - 4738 找桥的更多相关文章

  1. Caocao's Bridges HDU - 4738 求桥

    题目描述 Caocao was defeated by Zhuge Liang and Zhou Yu in the battle of Chibi. But he wouldn't give up. ...

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

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

  3. I - Caocao's Bridges - hdu 4738(求桥)

    题意:曹操的船之间有一些桥连接,现在周瑜想把这些连接的船分成两部分,不过他只能炸毁一座桥,并且每座桥上有士兵看守,问,他最少需要排多少士兵去炸桥如果不能做到,输出‘-1’ 注意:此题有好几个坑,第一个 ...

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

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

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

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

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

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

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

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

  8. hdu 4738 Caocao's Bridges 求无向图的桥【Tarjan】

    <题目链接> 题目大意: 曹操在长江上建立了一些点,点之间有一些边连着.如果这些点构成的无向图变成了连通图,那么曹操就无敌了.周瑜为了防止曹操变得无敌,就打算去摧毁连接曹操的点的桥.但是诸 ...

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

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

随机推荐

  1. ansible 安装和使用

                                ansible 安装和使用   ## 安装epel 源: rpm -ivh https://dl.fedoraproject.org/pub/e ...

  2. DHCP最佳实践(二)

    这是Windows DHCP最佳实践和技巧的最终指南. 如果您有任何最佳做法或技巧,请在下面的评论中发布它们. 在本指南(二)中,我将分享以下DHCP最佳实践和技巧. 从DHCP作用域中排除IP 了解 ...

  3. 【Linux】自建回收站

    linux rm命令是即刻删除的,而且挺多人喜欢加上-f强制命令,更暴力的是删除文件夹直接 rm -rf ,这样子代表你执行完后,就完全被干掉了. 还是推荐在linux下设置回收站,写一个shell脚 ...

  4. 零基础怎么学Python编程,新手常犯哪些错误?

    Python是人工智能时代最佳的编程语言,入门简单.功能强大,深获初学者的喜爱. 很多零基础学习Python开发的人都会忽视一些小细节,进而导致整个程序出现错误.下面就给大家介绍一下Python开发者 ...

  5. CSS不用背景图片实现优惠券样式反圆角,凹圆角,反向半圆角,并且背景渐变

    日常开发过程中,特别是商城相关应用开发过程中,时常会遇到花里胡哨的设计图,比如优惠券样式,上图: 实现思路如下:     1.先写一个外容器,实现背景色渐变: Html: 1 <div clas ...

  6. 两种方式,花五分钟就能构建一个 Spring Boot 应用

    前言 Spring Boot 的好处自然不必多说,对于想要从事 Java 工作的朋友们来说,可谓是必学的技能. 在我看来,它的优势就是多快好省. 功能多,很多常用的能力都有集成: 接入快,简单的几行代 ...

  7. jQuery 点击当前展开其他隐藏

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...

  8. uni-app请求uni.request封装使用

    对uni.request的一些共同参数进行简单的封装,减少重复性数据请求代码.方便全局调用. 先在目录下创建 utils 和 common 这2个文件夹 utils 是存放工具类的,common 用来 ...

  9. 通俗易懂的解释:什么是API

    API 全称 Application Programming Interface,即应用程序编程接口. 看到这里,急性子的小白同学马上就憋不住了:这不管是英文还是中文我每个字都懂啊,只是凑一块就不知道 ...

  10. 陈思淼:阿里6个月重写Lazada,再造“淘宝”的技术总结

    小结: 1. 所谓的中台技术,就是从 IDC,网络,机房,操作系统,中间件,数据库,算法平台,数据平台,计算平台,到业务平台,每一层都有清晰的定义和技术产品. 具体来看,首先,集团技术的分层和每层的产 ...