kuangbin专题 专题九 连通图 HDU 4738 Caocao's Bridges
题目链接:https://vjudge.net/problem/HDU-4738
题目:tarjan求桥,坑点:
题目说是分岛任务...如果所有岛之间没有完全连通,就不需要执行任务了...答案直接是0...
桥上可能没人,但是,炸弹需要一个人去送,所以至少1个人。
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std; const int N = (int)1e3+;
int n,m,tot,tim,solders;
int head[N],low[N],dfn[N];
struct node{
int to,nxt,w;
}e[(N*N)<<]; void init(){
for(int i = ; i <= n; ++i){
head[i] = -; dfn[i] = ;
}
tot = tim = ;
solders = (int)1e6;
} inline void add(int u,int v,int w){
e[tot].to = v; e[tot].w = w; e[tot].nxt = head[u]; head[u] = tot++;
} void tarjan(int now,int pre){
dfn[now] = low[now] = ++tim;
int to,pre_cnt = ;
for(int o = head[now]; ~o; o = e[o].nxt){
to = e[o].to;
if(to == pre && pre_cnt == ){ pre_cnt = ; continue; }//重边处理
if(!dfn[to]){
tarjan(to,now);
low[now] = min(low[now],low[to]);
if(dfn[now] < low[to]) solders = min(solders,e[o].w);
}else low[now] = min(low[now],dfn[to]);
}
} int main(){ int u,v,w;
while(~scanf("%d%d",&n,&m) && (n+m)){
init();
for(int i = ;i < m; ++i){
scanf("%d%d%d",&u,&v,&w);
add(u,v,w); add(v,u,w);
}
tarjan(,);
for(int i = ;i <= n; ++i){
if(!dfn[i]){ solders = -; break; }//岛本来就是分的
}
if(solders == -) printf("0\n");
else{
if(solders == (int)1e6) solders = -;//没法完成任务
printf("%d\n",!solders ? :solders);
}
} return ;
}
kuangbin专题 专题九 连通图 HDU 4738 Caocao's Bridges的更多相关文章
- Hdu 4738 Caocao's Bridges (连通图+桥)
题目链接: Hdu 4738 Caocao's Bridges 题目描述: 有n个岛屿,m个桥,问是否可以去掉一个花费最小的桥,使得岛屿边的不连通? 解题思路: 去掉一个边使得岛屿不连通,那么去掉的这 ...
- 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(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:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u S ...
- 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 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 (tarjan求桥)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4738 题目大意:给一些点,用一些边把这些点相连,每一条边上有一个权值.现在要你破坏任意一个边(要付出相 ...
- hdu 4738 Caocao's Bridges(桥的最小权值+去重)
http://acm.hdu.edu.cn/showproblem.php?pid=4738 题目大意:曹操有一些岛屿被桥连接,每座都有士兵把守,周瑜想把这些岛屿分成两部分,但他只能炸毁一条桥,问最少 ...
随机推荐
- Qt中MySQL数据库的操作例程
数据库连接不成功时,要将libmysql.dll放到C:\Qt\Qt5.11.0\5.11.0\mingw53_32\bin和C:\Qt\Qt5.11.0\5.11.0\msvc2017_64\bin ...
- H5_0025:css3自适应布局单位vw,vh
视口单位(Viewport units) 什么是视口? 在桌面端,视口指的是在桌面端,指的是浏览器的可视区域:而在移动端,它涉及3个视口:Layout Viewport(布局视口),Visual Vi ...
- mysql修改密码、创建用户、开放远程
创建密码: MariaDB [(none)]> use mysql; MariaDB [mysql]> UPDATE user SET password=password('newpass ...
- 3、MapReduce详解与源码分析
文章目录 1 Split阶段 2 Map阶段 2.1分区 2.2排序 3 Shuffle阶段 4 Reduce阶段 1 Split阶段 首先,接到hdf文件输入,在mapreduce中的ma ...
- 你是个好人,但不是个好leader
午餐时间,我翻看朋友圈,浏览到一条朋友A的最新动态,她刚创业半年多的公司因为资金周转不灵.项目搁浅.合伙人撤资等多方面原因,最终倒闭了. 朋友A有着多年的名企工作经验,985大学毕业,在学校时是学霸, ...
- 在Windows启动pyspark shell:Failed to find Spark jars directory. You need to build Spark before running this program
D:\Develop tools\spark-2.2.0-bin-hadoop2.7\bin>pyspark2.cmd 'tools\spark-2.2.0-bin-hadoop2.7\bin\ ...
- eclipse运行错误提示 Failed to load D:\Android\sdk\build-tools\26.0.0-preview\lib\dx.jar
前几天在ecplise上运行项目还好好,今天一运行就提示这个错误:Your project contains error(s), please fix them before running your ...
- python3练习100题——040
原题链接:http://www.runoob.com/python/python-exercise-example40.html 题目:将一个数组逆序输出. a=[1,2,3,4,5] print a ...
- 学Python必须背的42个常见单词,看看你都会吗?
这42个单词是学习Python必须背会的单词,也是代码中常见的单词.希望你能都背下来! ! 1. adult [ˈædʌlt] 成年人 2. authentication [ɔːˌθentɪˈke ...
- 《操作系统真象还原》bochs安装
在安装bochs之前,我们先需要安装虚拟机和linux发行版,也可以安装双系统,总之有个linux操作系统就好. 我是在ubuntu14.04系统下安装bochs的. 安装Bochs 以下为安装步骤 ...