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 题目大意:曹操有一些岛屿被桥连接,每座都有士兵把守,周瑜想把这些岛屿分成两部分,但他只能炸毁一条桥,问最少 ... 
随机推荐
- javaweb利用javabean将数据库中内容遍历在页面输出
			效果如下图 它所实现的就是把数据库中一个表中所有的数据一条一条以表格的形式输出在网页上, 实现方法如下 首先我们要从数据库读取数据,这里要借助javabean来方便我们传递数据 以上面的为例,我要输出 ... 
- 【巨杉数据库SequoiaDB】巨杉数据库无人值守智能自动化测试实践
			刚刚过去的春节,新型冠状病毒疫情突如其来地横扫大江南北.为了响应国家号召,许多软件公司和互联网公司也将在较长一段时间内建议员工采取远程办公的方式,同时也存在骨干工程师无法及时返岗的问题,使得生产力大受 ... 
- PAT (Basic Level) Practice (中文)1064 朋友数 (20 分) (set)
			如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”.例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号.给定 ... 
- [CF1303A] Erasing Zeroes
			Solution 找到边界然后循环扫一遍数个数即可 #include <bits/stdc++.h> using namespace std; int n; const int N = 1 ... 
- Python标准库之re模块
			re模块用于正则表达式. 正则表达式在线测试:http://c.runoob.com/front-end/854 正则表达式元字符可以参考:https://www.w3cschool.cn/zheng ... 
- threadpool 实例介绍第二篇
- CSS-使用CSS样式的方式
			1.HTML<!DOCTYPE>声明标签 (1)定义和用法 <!DOCTYPE>声明必须是HTML文档的第一行,位于<html>标签之前. <!DOCTYPE ... 
- 从servlet向jsp中传数据用Java接收js调用
			servlet: response.sendRedirect("showMessage.jsp?ValueA=1"); jsp: var a=<%=request.getPa ... 
- Python-Django学习笔记(一)-MTV设计模式
			Django是开源的.大而且全的Web应用框架. 它独具特色,采用了MTV设计模式. MTV框架包括:Model(模型).Template(模板)和View(视图) Model(模型):负责业务对象与 ... 
- linux中Jenkins启动/重启/停止命令
			简要记录一下Linux 中Jenkins启动/重启/停止命令 启动service jenkins start1重启service jenkins restart1停止service jenkins s ... 
