HDU 4738 Caocao's Bridges(割边)
乍一看一个模板题,仔细一看还是模板题,但是三个坑。1,不是连通图,放0个。2 守卫为0,放1个。 3注意重边。
#include<iostream>
#include<cstdio>
#include<vector>
#include<queue>
#include<algorithm>
#include<stack>
#include<cstring>
using namespace std;
#define maxn 1005
int head[maxn],dfn[maxn],low[maxn],guard[maxn][maxn],tot,n;
int vis[maxn],all,index,bri[maxn*maxn];
struct Edge
{
int to,nxt,g;
} edge[maxn*maxn*];
queue<int> que;
void bfs(int u)
{
vis[u] = ;
que.push(u);
while(!que.empty())
{
int now = que.front();
que.pop();
for(int i = head[now]; i != -; i = edge[i].nxt)
{
int v = edge[i].to;
if(!vis[v]) {que.push(v);vis[v] = ;}
}
}
}
bool judge()
{
memset(vis,,sizeof(vis));
int sum = ;
while(!que.empty()) que.pop();
for(int i = ; i <= n; i++)
{
if(!vis[i])
{
sum++;
bfs(i);
}
}
if(sum==) return true;
return false;
}
void addedge(int u,int v,int w)
{
edge[tot].to = v;
edge[tot].g = w;
edge[tot].nxt = head[u];
head[u] = tot++;
}
void init()
{
all = index = ;
memset(low,,sizeof(low));
memset(dfn,,sizeof(dfn));
}
void tarjan(int u,int fa)
{
low[u] = dfn[u] = ++index;
for(int i = head[u];i != -;i = edge[i].nxt){
int v = edge[i].to;
if(!dfn[v]){
tarjan(v,u);
low[u] = min(low[u],low[v]);
if(low[v] > dfn[u] && guard[u][v]!=-&&guard[v][u]!=-){
bri[all++] = edge[i].g;
}
}
else if(v != fa) low[u] = min(low[u],dfn[v]);
}
}
int main()
{
int m,a,b,w;
while(~scanf("%d%d",&n,&m))
{
if(n+m == ) break;
memset(head,-,sizeof(head));
tot = ;
memset(guard,-,sizeof(guard));
for(int i = ; i < m; i++)
{
scanf("%d%d%d",&a,&b,&w);
if(guard[a][b]==- && guard[b][a]==-)
{
addedge(a,b,w);
addedge(b,a,w);
guard[a][b] = guard[b][a] = w;
}
else {
guard[a][b] = guard[b][a] = -;
}
}
if(!judge())
{
puts("");
continue;
}
init();
tarjan(,-);
if(all == ){
puts("-1");
continue;
}
sort(bri,bri+all);
if(bri[] == ) puts("");
else printf("%d\n",bri[]);
}
}
HDU 4738 Caocao's Bridges(割边)的更多相关文章
- hdu 4738 Caocao's Bridges(割边)
题目链接 用tarjan求桥上的最小权值 #include<bits/stdc++.h> #define ll long long int using namespace std; inl ...
- Hdu 4738 Caocao's Bridges (连通图+桥)
题目链接: Hdu 4738 Caocao's Bridges 题目描述: 有n个岛屿,m个桥,问是否可以去掉一个花费最小的桥,使得岛屿边的不连通? 解题思路: 去掉一个边使得岛屿不连通,那么去掉的这 ...
- 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(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: 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 (2013杭州网络赛1001题,连通图,求桥)
Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 2013杭州网赛 1001 hdu 4738 Caocao's Bridges(双连通分量割边/桥)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4738 题意:有n座岛和m条桥,每条桥上有w个兵守着,现在要派不少于守桥的士兵数的人去炸桥,只能炸一条桥 ...
随机推荐
- 请问如何查询一个APP的Android和iOS下载量?
作者:Jasmine Jiang链接:http://www.zhihu.com/question/28533067/answer/87871598来源:知乎著作权归作者所有,转载请联系作者获得授权. ...
- 3.编写Java应用程序。首先定义一个描述银行账户的Account类,包括成员变 量“账号”和“存款余额”,成员方法有“存款”、“取款”和“余额查询”。其次, 编写一个主类,在主类中测试Account类的功能。
Account package com.hanqi.test; public class Account { private String zhanghao;private double yve; A ...
- Tomcat7调优及JVM性能优化for Linux环境
标签: tomcat7 jvm 性能 分享到: 出处:http://www.iteye.com 该优化针对Linux X86_X64环境 1. Tomcat优化其实就是对server.xml优化(开户 ...
- hashMap、hashTable、treeMap的区别
1.hashTable是线程安全的.hashMap不是线程安全的 hashmap 线程不安全 允许有null的键和值 效率高一点. 方法不是Synchronize的要提供外同步 有containsva ...
- 12C expdp issue
issue 1: 使用expdp时遭遇ora-31650 D:\oracle\diag\rdbms \trace>expdp \"/ as sysdba\" schemas ...
- JPA基本注解介绍
一.@Entity •@Entity 标注用于实体类声明语句之前, 指出该Java 类为实体类,将映射到指定的数据库表. 如声明一个实体类 Customer,它将映射到数据库中的 customer 表 ...
- chrome浏览器调试工具的使用
废话不多说,给大家介绍一下最基本的浏览器调试工具
- android 常用
1:常用之动画(View Animation,Drawable Animation,Property Animation) http://blog.csdn.net/huxueyan521/artic ...
- Struts2如何传值到jsp页面
Struts2如何传值到jsp页面 不是action传值到jsp页面,而是jsp页面获取action中的属性值,或者范围(如request,session,application等)里的值.所以,有两 ...
- HttpWatch工具简介及使用技巧(转载)
一 概述: HttpWatch强大的网页数据分析工具.集成在Internet Explorer工具栏.包括网页摘要.Cookies管理.缓存管理.消息头发送/接受.字符查询.POST 数据和目录管理功 ...