题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=26586

  题意:给一个图,每条边有一个权值。要你求选择一棵树,权值和为sum,然后在树上选择一条边权值为w,然后使得sum-2*w最小。

  首先求一遍最小生成树,然后求出每两个点之间的最小瓶颈路,然后枚举边就行了。。  

 //STATUS:C++_AC_916MS_30048KB
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
#define mem(a,b) memset(a,b,sizeof(a))
typedef long long LL; const int N=; struct Edge{
int u,v,w;
}e[],et[];
int first[N],next[];
int p[N],vis[N],d[N][N];
bool mst[];
int n,m,mt; void adde(int a,int b,int c)
{
et[mt].u=a,et[mt].v=b,et[mt].w=c;
next[mt]=first[a];first[a]=mt++;
et[mt].u=b,et[mt].v=a,et[mt].w=c;
next[mt]=first[b];first[b]=mt++;
} int cmp(const Edge& a,const Edge& b)
{
return a.w<b.w;
} int find(int x){return p[x]==x?x:p[x]=find(p[x]);} int Kruskal()
{
int i,j,x,y,sum=,cnt=;
for(i=;i<=n;i++)p[i]=i;
sort(e,e+m,cmp);
mem(mst,);
for(i=;i<m;i++){
x=find(e[i].u);
y=find(e[i].v);
if(x!=y){
cnt++;
sum+=e[i].w;
p[y]=x;
mst[i]=true;
}
}
if(cnt<n-)return -;
return sum;
} int dfs(int& s,int u,int fa,int hig)
{
int i,v;
for(i=first[u];i!=-;i=next[i]){
v=et[i].v;
if(v==fa)continue;
d[s][v]=max(hig,et[i].w);
dfs(s,v,u,d[s][v]);
}
return ;
} int main(){
// freopen("in.txt","r",stdin);
int i,j;
while(~scanf("%d%d",&n,&m))
{
for(i=;i<m;i++){
scanf("%d%d%d",&e[i].u,&e[i].v,&e[i].w);
} int sum;
if((sum=Kruskal())==-){
printf("disconnected\n");
continue;
}
mem(first,-);mt=;
for(i=;i<m;i++){
if(mst[i]){
adde(e[i].u,e[i].v,e[i].w);
}
}
mem(d,);
for(i=;i<=n;i++){
dfs(i,i,-,);
}
int ans=0x7FFFFFFF;
for(i=;i<m;i++){
ans=min(ans,sum-d[e[i].u][e[i].v]-e[i].w);
} printf("%d\n",ans);
}
return ;
}

BNUOJ-26586 Simon the Spider 最小生成树+枚举的更多相关文章

  1. HDU 1589 Find The Most Comfortable Road 最小生成树+枚举

    find the most comfortable road Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  2. HDU4081 Qin Shi Huang&#39;s National Road System【prim最小生成树+枚举】

    先求出最小生成树,然后枚举树上的边,对于每条边"分别"找出这条割边形成的两个块中点权最大的两个 1.因为结果是A/B.A的变化会引起B的变化,两个制约.无法直接贪心出最大的A/B. ...

  3. csu1116 Kingdoms 最小生成树-枚举状态

    题目链接: csu 1116 题意: 有一幅双向图连接N个城市(标号1~n,1表示首都)  每一个城市有一个价值W. 地震摧毁了全部道路,现给出可修复的m条道路并给出修复每条道路所需的费用 问在总费用 ...

  4. CSU 1541 There is No Alternative (最小生成树+枚举)

    题目链接:传送门 题意: 有n个点.m条边.要使n个点所有连起来且要花费最小.问有哪些边是必需要连的. 分析: 要使花费最小肯定是做最小生成树.可是题目要求哪些边是必需要用的.我们能够 这样思考,我们 ...

  5. 2017北京国庆刷题Day6 afternoon

    期望得分:100+100+40=240 实际得分:100+0+40=140 二进制拆分.二进制前缀和 #include<cstdio> #include<iostream> u ...

  6. Codeforces Round #535(div 3) 简要题解

    Problem A. Two distinct points [题解] 显然 , 当l1不等于r2时 , (l1 , r2)是一组解 否则 , (l1 , l2)是一组合法的解 时间复杂度 : O(1 ...

  7. UVA-10600(次小生成树)

    题意: 现在给一个图,问最小生成树和次小生成树的权值和是多少; 思路: 求最小生成树的两种方法,次小生成树是交换最小生成树的其中一条边得到的,现在得到了最小生成树,枚举不在次小生成树中的边,再求一边最 ...

  8. 【POJ 1679】 The Unique MST

    [题目链接] 点击打开链接 [算法] 先求出图的最小生成树 枚举不在最小生成树上的边,若加入这条边,则形成了一个环,如果在环上且在最小生成树上的权值最大的边等于 这条边的权值,那么,显然最小生成树不唯 ...

  9. 国庆 day 6 下午

    1.数组异或 (xorarray.pas/c/cpp) (xorarray.in/out) 时间限制:2s/空间限制:256M [题目描述] xor——异或,和 and 与or 一样,是一种重要的逻辑 ...

随机推荐

  1. List<T> 排序

    List<T>的排序 List<DataPoint> dataPointsDataPints = ...; //按RegisterAddress升序排序 dataPointsD ...

  2. HDU 1422 重温世界杯(DP)

    点我看题目 题意 : 中文题不详述. 思路 : 根据题目描述及样例可以看出来,如果你第一个城市选的是生活费减花费大于等于0的时候才可以,最好是多余的,这样接下来的就算是花超了(一定限度内的花超),也可 ...

  3. PYTHON设计模式,创建型之工厂方法模式

    我感觉和上一个差不多,可能不要动最要的地方吧... #!/usr/bin/evn python #coding:utf8 class Pizza(object): def prepare(self, ...

  4. hdu 4558 剑侠情缘

    思路:dp[i][j][k]表示在点(i,j)处能量的差值为k的方案数 转移的时候把差值取相反数就实现轮流了 代码如下: #include<iostream> #include<st ...

  5. [译]C++书籍终极推荐

    转载声明: 翻译仅以技术学习和交流为目的,如需转载请务必标明原帖链接. 来源:http://stackoverflow.com/questions/388242/the-definitive-c-bo ...

  6. Java Socket实战之一 单线程通信

    本文地址:http://blog.csdn.net/kongxx/article/details/7259436 现在做Java直接使用Socket的情况是越来越少,因为有很多的选择可选,比如说可以用 ...

  7. Struts-2.3.24.1官方例子-struts2-blank

    一.配置文件 1.web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app id=&qu ...

  8. jQuery 的 $("someobjectid”).event() 的绑定

    经验证,jquery 的 $("someobjectid”).event()事件绑定,如果放在某个会被重新初始化的对象里,就会被多次绑定. 如下 <div id="divID ...

  9. QT UAC问题汇总贴

    http://www.qtcn.org/bbs/read-htm-tid-47983.html http://www.cnblogs.com/bombless/archive/2010/12/29/h ...

  10. POJ2586——Y2K Accounting Bug

    Y2K Accounting Bug   Description Accounting for Computer Machinists (ACM) has sufferred from the Y2K ...