#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 110;
const int INF = 0x3f3f3f3f;
int map[maxn][maxn], used[maxn][maxn], lowc[maxn],pre[maxn];
int n, m, vis[maxn], Max[maxn][maxn];
void init ()
{
for (int i=0; i<maxn; i++)
for (int j=0; j<maxn; j++)
if (i == j)
map[i][j] = 0;
else
map[i][j] = INF;
memset (used, 0, sizeof(used));
memset (lowc, 0, sizeof(lowc));
memset (pre, 0, sizeof(pre));
memset (vis, 0, sizeof(vis));
}
int prim (int s)
{
int ans = 0, mini, p;
for (int i=1; i<=n; i++)
{
lowc[i] = map[s][i];
pre[i] = s;
}
vis[s] = 1;
for (int i=1; i<n; i++)
{
mini = INF;
for (int j=1; j<=n; j++)
{
if (!vis[j] && mini>lowc[j])
{
mini = lowc[j];
p = j;
}
}
ans += mini;
vis[p] = 1;
used[p][pre[p]] = used[pre[p]][p] = 1;
for (int j=1; j<=n; j++)
{
if (vis[j] && p!=j)
Max[p][j] = Max[j][p] = max (Max[j][pre[p]], lowc[p]);
if (!vis[j] && map[j][p]<lowc[j])
{
lowc[j] = map[j][p];
pre[j] = p;
}
}
}
return ans;
}
int SMST (int ans)
{
int mini = INF;
for (int i=1; i<=n; i++)
for (int j=i+1; j<=n; j++)
if (!used[i][j] && map[i][j]!=INF)
mini = min (mini, ans - Max[i][j] + map[i][j]);
return mini;
}

int main ()
{
int t;
scanf ("%d", &t);
while (t --)
{
init ();
scanf ("%d %d", &n, &m);
while (m --)
{
int u, v, s;
scanf ("%d %d %d", &u, &v, &s);
map[u][v] = map[v][u] = s;
}
int num1 = prim(1);
int num2 = SMST(num1);
if (num1 != num2)
printf ("%d\n", num1);
else
printf ("Not Unique!\n");
}
return 0;
}

次小生成树 POJ 2728的更多相关文章

  1. POJ 1679 The Unique MST (次小生成树)

    题目链接:http://poj.org/problem?id=1679 有t组数据,给你n个点,m条边,求是否存在相同权值的最小生成树(次小生成树的权值大小等于最小生成树). 先求出最小生成树的大小, ...

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

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

  3. 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 ...

  4. POJ 1679 The Unique MST:次小生成树【倍增】

    题目链接:http://poj.org/problem?id=1679 题意: 给你一个图,问你这个图的最小生成树是否唯一. 题解: 求这个图的最小生成树和次小生成树.如果相等,则说明不唯一. 次小生 ...

  5. POJ 1679 The Unique MST(次小生成树)

    题意:求解最小生成树的权值是否唯一,即要我们求次小生成树的权值两种方法求最小生成树,一种用prim算法, 一种用kruskal算法 一:用prim算法 对于给定的图,我们可以证明,次小生成树可以由最小 ...

  6. poj 1679 次小生成树

    次小生成树的求法: 1.Prime法 定义一个二维数组F[i][j]表示点i到点j在最小生成树中的路径上的最大权值.有个知识就是将一条不在最小生成树中的边Edge加入最小生成树时,树中要去掉的边就是E ...

  7. (poj)1679 The Unique MST 求最小生成树是否唯一 (求次小生成树与最小生成树是否一样)

    Description Given a connected undirected graph, tell if its minimum spanning tree is unique. Definit ...

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

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

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

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

随机推荐

  1. python常见面试题(一)

    1.Python是如何进行内存管理的? 答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制 一.对象的引用计数机制 Python内部使用引用计数,来保持追踪内存中的对象,所有对象都 ...

  2. oracle中提高order by的性能

    1.如果order by columnA,那么在where查询条件中添加条件columnA=value,则oracle内部会过滤order by排序,直接用索引(可以通过execution plan查 ...

  3. AI关注的网址

    中科院计算技术研究所博士招生:http://admission.ucas.ac.cn/info/ZhaoshengDanweiDetail/9adf9e50-424b-44c8-b2dc-900ef9 ...

  4. ntp服务及其配置

    集群中使用NTP服务 简介 之前搭建zookeeper时报了一个错,我以为是ntp的问题,结果不是.这里详细学习一下如何在集群中使用ntp服务. 什么是ntp服务 来自ntp的百度百科: NTP服务器 ...

  5. Cocoa 静态显示一个对话框

    M // // form2.m // test_multi_window // // Created by on 23/7/14. // Copyright (c) 2014 EDU. All rig ...

  6. 使用虚拟环境 virtualenv

    1.安装 $ sudo apt-get install python-virtualenv 2.重命名,一般虚拟环境会被命名为venv $ virtualenv   venv 3. 激活 $ sour ...

  7. EasyUI分页(前台分页和后台分页)

    整理一下以前的总结: 分页包括前台分页和后台分页两种,针对数据量比较小的,比如说单位,角色等,可以使用前台分页,而针对日志文件这些,需要后台分页. 先说说前台分页吧: function pagerFi ...

  8. HDU 5273 区间DP

    输入一组数,m次询问 问每一个询问区间的逆序数有多少 区间DP简单题 #include "stdio.h" #include "string.h" int dp ...

  9. How can I detect multiple logins into a Django web application from different locations?

    1) Install django-tracking (thankyou for that tip Van Gale Google Maps + GeoIP is amazing!) 2) Add t ...

  10. android--SDK Manager下载Connection to http://dl-ssl.google.com refused

    错误 Failed to fetch URL https://dl-ssl.google.com/android/repository/repository-6.xml, reason: Connec ...