次小生成树模板,别忘了判定不存在最小生成树的情况

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; const int maxn = + ;
const int inf = 0x3f3f3f3f;
int MAX[maxn][maxn], mp[maxn][maxn], dis[maxn], pre[maxn];
int t, n, m;
bool vis[maxn], used[maxn][maxn];
inline int min( int a,int b ){
return a<b ? a:b;
} inline int max( int a, int b ){
return a>b ? a:b;
} inline int prim(){
int res = ;
memset( vis, , sizeof(vis) );
memset( used, , sizeof(used) );
memset( MAX, , sizeof(MAX) );
for( int i=; i<=n; i++ ){
pre[i] = ;
dis[i] = mp[i][];
}
vis[] = ;
dis[] = pre[] = ;
for( int i=; i<n; i++ ){
int minid, MIN = inf;
for( int j=; j<=n; j++ ) if( !vis[j] && MIN>dis[j] ) MIN = dis[minid=j];
if( MIN==inf ) return -; //不存在最小生成树
res += MIN;
vis[minid] = ;
used[minid][pre[minid]] = used[pre[minid]][minid] = ;
for( int j=; j<=n; j++ ){
if( vis[j] ) MAX[minid][j] = MAX[j][minid] = max( dis[minid], MAX[j][pre[minid]] );
if( !vis[j] && dis[j]>mp[minid][j] ){
pre[j] = minid;
dis[j] = mp[minid][j];
}
}
}
return res;
} int main(){
scanf("%d", &t);
while( t-- ){
scanf("%d%d", &n, &m);
memset( mp, inf, sizeof(mp) );
for( int i=; i<m; i++ ){
int u, v, w;
scanf("%d%d%d", &u, &v, &w);
mp[u][v] = mp[v][u] = w;
}
int min_ans = prim(), ans = inf;
if( min_ans==- ){ printf("Not Unique!\n"); continue; } //不存在最小生成树
for( int i=; i<=n; i++ )
for( int j=i+; j<=n; j++ )
if( mp[i][j]!=inf && !used[i][j] )
ans = min( ans, min_ans+mp[i][j]-MAX[i][j] );
if( ans==min_ans ) printf("Not Unique!\n");
else printf("%d\n", min_ans);
} return ;
}

poj1679The Unique MST(次小生成树模板)的更多相关文章

  1. POJ_1679_The Unique MST(次小生成树模板)

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

  2. POJ-1679 The Unique MST,次小生成树模板题

    The Unique MST Time Limit: 1000MS   Memory Limit: 10000K       Description Given a connected undirec ...

  3. POJ1679 The Unique MST —— 次小生成树

    题目链接:http://poj.org/problem?id=1679 The Unique MST Time Limit: 1000MS   Memory Limit: 10000K Total S ...

  4. POJ1679 The Unique MST[次小生成树]

    The Unique MST Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 28673   Accepted: 10239 ...

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

    题目链接 Description Given a connected undirected graph, tell if its minimum spanning tree is unique. De ...

  6. POJ_1679_The Unique MST(次小生成树)

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

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

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

  8. POJ 1679 The Unique MST (次小生成树kruskal算法)

    The Unique MST 时间限制: 10 Sec  内存限制: 128 MB提交: 25  解决: 10[提交][状态][讨论版] 题目描述 Given a connected undirect ...

  9. poj 1679 The Unique MST (次小生成树(sec_mst)【kruskal】)

    The Unique MST Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 35999   Accepted: 13145 ...

随机推荐

  1. 贴子详情接口偶发时延超过2s的问题

    1. 发现问题     1. 查询慢access日志,发现偶尔有接口时延超过2s,发送概率1%左右 2. 排查     1. 写单元测试,多次测试后,不能重现问题     2. 接口代码里加日志,每隔 ...

  2. python中__init__.py的作用、module和package

    控制包的导入行为: 1.声明当前文件是一个可导入的包: 2.如果当下包下有多个.py文件使用__ all__ = [ '模块名'],也就是form XXX import YYY module和pack ...

  3. html5 canvas手写字代码(兼容手机端)

    html5 canvas手写字代码(兼容手机端) <pre><!DOCTYPE html><html><head> <title>画板实验& ...

  4. 【LOJ523】[LibreOJ β Round #3]绯色 IOI(悬念)(霍尔定理_基环树)

    题目 LOJ523 官方题解 分析 由于某些原因,以下用「左侧点」和「右侧点」分别代替题目中的「妹子」和「男生」. 根据题意,显然能得出一个左侧点只能向一个或两个右侧点连边.这似乎启发我们把左侧点不看 ...

  5. myssl.com SSL 检测

    配置正确了,就正常了. 与证书关系不大.

  6. understanding backpropagation

    几个有助于加深对反向传播算法直观理解的网页,包括普通前向神经网络,卷积神经网络以及利用BP对一般性函数求导 A Visual Explanation of the Back Propagation A ...

  7. List集合分批多线程处理,同时控制最大并发

    业务中,要实现数据日终同步,采用将同步文件中的数据封装成List集合分批处理加多线程的方式,根据数据量动态设置线程数,同时控制最大并发数量(业务中有IO操作,避免过大并发导致堵塞),实现效率提高 // ...

  8. 防范sql注入值得注意地方

    sql注入是大家基本都清楚,一般来说用参数化就能解决注入的问题,也是最好的解决方式. 有次技术群里问到一个问题,如下图 很显然tableName是外部传递过来的,暂时不考虑具体的业务环境,但如果以se ...

  9. [转帖]技术人眼中的Facebook Libra

    技术人眼中的Facebook Libra https://www.jianshu.com/p/ddc733077749 比特币 以太坊 EOS Libra 0.8352019.07.01 14:15: ...

  10. Resharper速度慢解决办法

    Reshaper很好用,但是安装后速度特别慢,大部分情况下,我们只需要使用一些插件功能,代码自动分析功能可以关闭,如图:取消Code analysis即可.