http://poj.org/problem?id=1679

次小生成树

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm> using namespace std;
#define N 200
#define INF 0xfffffff int G[N][N],vis[N],dis[N],n,m,pre[N];
int Max[N][N],use[N][N]; void Inn()
{
int i,j;
for(i=;i<=N;i++)
{
dis[i]=;
for(j=;j<=N;j++)
{
if(i==j)
G[i][j]=;
else
G[i][j]=INF;
}
}
memset(vis,,sizeof(vis));
memset(use,,sizeof(use));
memset(Max,,sizeof(Max));
memset(pre,,sizeof(pre));
} int prime(int s)
{
int i,j,ans=;
for(i=;i<=n;i++)
{
dis[i]=G[s][i];
pre[i]=s;
}
vis[s]=;
for(i=;i<n;i++)
{
int Min=INF,dist=;
for(j=;j<=n;j++)
{
if(!vis[j] && dis[j]<Min)
{
Min=dis[j];
dist=j;
}
}
ans+=Min;
vis[dist]=;
use[dist][pre[dist]]=use[pre[dist]][dist]=;
for(j=;j<=n;j++)
{
if(vis[j] && j!=dist)
Max[dist][j]=Max[j][dist]=max(Max[dist][j],dis[dist]);
if(!vis[j] && dis[j]>G[dist][j])
{
dis[j]=G[dist][j];
pre[j]=dist;
}
}
}
return ans;
} int SMST(int a)
{
int minn=INF,i,j;
for(i=;i<=n;i++)
{
for(j=i+;j<=n;j++)
{
if(!use[i][j] && G[i][j]!=INF)
minn=min(minn,a-Max[i][j]+G[i][j]);
}
}
return minn;
} int main()
{
int T,i,a,b,c;
scanf("%d",&T);
while(T--)
{
Inn();
scanf("%d %d",&n,&m);
for(i=;i<m;i++)
{
scanf("%d %d %d",&a,&b,&c);
G[a][b]=G[b][a]=c;
}
int n1=prime();
int n2=SMST(n1);
if(n1==n2)
printf("Not Unique!\n");
else
printf("%d\n",n1);
}
return ;
}

The Unique MST-POJ1679(次小生成树)的更多相关文章

  1. POJ-1679 The Unique MST(次小生成树、判断最小生成树是否唯一)

    http://poj.org/problem?id=1679 Description Given a connected undirected graph, tell if its minimum s ...

  2. POJ1679 The Unique MST 【次小生成树】

    The Unique MST Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 20421   Accepted: 7183 D ...

  3. POJ1679 The Unique MST【次小生成树】

    题意: 判断最小生成树是否唯一. 思路: 首先求出最小生成树,记录现在这个最小生成树上所有的边,然后通过取消其中一条边,找到这两点上其他的边形成一棵新的生成树,求其权值,通过枚举所有可能,通过这些权值 ...

  4. The Unique MST(次小生成树)

    Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 22335   Accepted: 7922 Description Give ...

  5. POJ1679The Unique MST(次小生成树)

    The Unique MST Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 25203   Accepted: 8995 D ...

  6. poj 1679 The Unique MST【次小生成树】

    The Unique MST Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 24034   Accepted: 8535 D ...

  7. POJ 1679:The Unique MST(次小生成树&amp;&amp;Kruskal)

    The Unique MST Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 19941   Accepted: 6999 D ...

  8. poj 1679 The Unique MST 【次小生成树】【模板】

    题目:poj 1679 The Unique MST 题意:给你一颗树,让你求最小生成树和次小生成树值是否相等. 分析:这个题目关键在于求解次小生成树. 方法是,依次枚举不在最小生成树上的边,然后加入 ...

  9. POJ 1679 The Unique MST (次小生成树)题解

    题意:构成MST是否唯一 思路: 问最小生成树是否唯一.我们可以先用Prim找到一棵最小生成树,然后保存好MST中任意两个点i到j的这条路径中的最大边的权值Max[i][j],如果我们能找到一条边满足 ...

  10. poj 1679 The Unique MST 【次小生成树+100的小数据量】

    题目地址:http://poj.org/problem?id=1679 2 3 3 1 2 1 2 3 2 3 1 3 4 4 1 2 2 2 3 2 3 4 2 4 1 2 Sample Outpu ...

随机推荐

  1. 使用原生JavaScript模拟getElementByClassName .

    最近在工作中,由于有一个插件必须使用jquery-pack.js,而这个包又是非常古老的jquery,所以又的函数是无法使用的,例如$()选择器以及parent()都取不到标签的内容. 所以没办法,只 ...

  2. 错误:Implicit super constructor xx() is undefined for default constructor.

    因为父类定义了一个有参的构造函数且父类中没有默认的无参构造方法,此时编译器不会为你调用默认的构造函数,当子类继承时,必须在自己的构造函数显式调用父类的构造函数,才能确保子类在初始化前父类会被实例化,如 ...

  3. docker 应用数据的管理

    容器数据存储的三种方式 docker volume docker管理素质及文件系统的一部分,保存数据最佳方式 bind mounts   将宿主机的文件映射到容器里 tmpfs   存储在宿主机的内存 ...

  4. 错误: 代理抛出异常错误: java.rmi.server.ExportException: Port already in use: 1099; nested exception is: java.net.BindException: Address already in use: JVM_Bind

    在使用SpringMVC测试的时候, 遇到了这样一个问题, 说的是端口已经被使用了. 代理抛出异常错误: java.rmi.server.ExportException: Port already i ...

  5. 全新Ubentu系统没有make,gcc命令解决办法

    一定要记得先update sudo apt-get update 然后输入下述命令即可 sudo apt-get install make sudo apt-get install gcc

  6. sin_addr.s_addr和sin_addr.S_un.S_addr

    sin_addr.s_addr和sin_addr.S_un.S_addr 先mark一下,等下写

  7. MySQL数据库文件

    MySQL数据库文件 本文档从MySQL数据库和存储引擎层面介绍各种类型的文件. 参数文件(my.cnf) 错误日志(error log) 二进制日志文件(binary log) 慢查询日志(slow ...

  8. LeetCode(65) Valid Number

    题目 Validate if a given string is numeric. Some examples: "0" => true " 0.1 " ...

  9. 【HIHOCODER 1105】题外话·堆

    描述 小Ho有一个糖果盒子,每过一段时间小Ho都会将新买来的糖果放进去,同时他也会不断的从其中挑选出最大的糖果出来吃掉,但是寻找最大的糖果不是一件非常简单的事情,所以小Ho希望能够用计算机来他帮忙计算 ...

  10. 如何在ASP.NET MVC为Action定义筛选器

    在ASP.NET MVC中,经常会用到[Required]等特性,在MVC中,同样可以为Action自定义筛选器,来描述控制器所遵守的规则. 首先,我们在ASP.NET MVC项目中定义一个TestC ...