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

#include<iostream>
#include<vector>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct node{
int u,v,w; }e[];
int f[];
vector<int>vis;
bool cmp(node p,node q){
return p.w<q.w;
}
int find(int x){
return x==f[x]?x:f[x]=find(f[x]);
}
int main(){
int t;
scanf("%d",&t);
while(t--){
int n,m,ans=;
vis.clear();
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++){
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
e[i].u=u;
e[i].v=v;
e[i].w=w;
}
sort(e+,e++m,cmp);
for(int i=;i<=n;i++)
f[i]=i;
for(int j=,i=;i<=m;i++){
int u=e[i].u,v=e[i].v;
int a=find(u),b=find(v);
if(a!=b){
f[a]=b;
j++;
ans+=e[i].w;
vis.push_back(i);
}
if(j==n-)
break;
}
int flag=;
for(int k=;k<vis.size();k++){
int sign=vis[k];
int ans1=;
for(int i=;i<=n;i++)
f[i]=i;
int j=;
for(int i=;i<=m;i++){
if(i!=sign){
int u=e[i].u,v=e[i].v;
int a=find(u),b=find(v);
if(a!=b){
f[a]=b;
ans1+=e[i].w;
j++;
}
if(j==n-)
break;
}
}
if(j==n-){
if(ans1==ans){
flag=;
break;
}
}
}
if(flag)
puts("Not Unique!");
else
printf("%d\n",ans); }
return ;
}

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

  1. K - The Unique MST

    K - The Unique MST #include<iostream> #include<cstdio> #include<cstring> #include& ...

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

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

  3. poj1679The Unique MST(次小生成树模板)

    次小生成树模板,别忘了判定不存在最小生成树的情况 #include <iostream> #include <cstdio> #include <cstring> ...

  4. K - The Unique MST - poj 1679

    题目的意思已经说明了一切,次小生成树... ****************************************************************************** ...

  5. POJ--1679--The Unique MST【推断MST是否唯一】

    链接:http://poj.org/problem? id=1679 题意:告诉你有n个点,m条边,以及m条边的信息(起点.终点.权值).推断最小生成树是否唯一 之前是用另外一种方法做的.复杂度最高可 ...

  6. K - The Unique MST (最小生成树的唯一性)

    Given a connected undirected graph, tell if its minimum spanning tree is unique. Definition 1 (Spann ...

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

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

  8. POJ-1679.The Unique MST.(Prim求次小生成树)

    The Unique MST Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 39561   Accepted: 14444 ...

  9. poj 1679 判断MST是不是唯一的 (次小生成树)

    判断MST是不是唯一的 如果是唯一的 就输出最小的权值和 如果不是唯一的 就输出Not Unique! 次小生成树就是第二小生成树  如果次小生成树的权值和MST相等  那么MST就不是唯一的 法一: ...

随机推荐

  1. HashMap的fast-fail和ConcurrentHashMap的fail-safe实例

    声明:迁移自本人CSDN博客https://blog.csdn.net/u013365635 Java HashMap遍历过程中如果元素被修改会导致遍历失败,ConcurrentHashMap则不会有 ...

  2. 题解 P1019 【单词接龙】

    题目 单词具体是什么不重要,知道单词间如何转化即可 [分析] 先理清一下题意: \(n\)个单词,每个单词限用两次 上一个单词能与下一个单词接上,当且仅当上一个单词的末尾 \(k\) 个字符与下一个单 ...

  3. HTML 回到顶部 浮动

    回到顶部 <div id="FloatDIV" style="position: absolute; top: 0px; z-index: 9999; backgr ...

  4. Python—在Django中使用Celery

    一.Django中的请求 Django Web中从一个http请求发起,到获得响应返回html页面的流程大致如下: http请求发起 经过中间件 http handling(request解析) ur ...

  5. 内存管理之堆heap

    1.什么是堆? 堆(heap)是一种内存管理方式.内存管理对操作系统来说是一件非常复杂的事情,因为首先内存容量很大, 其次就是内存需求在时间和大小块上没有规律(操作系统上运行着几十甚至几百个进程,这些 ...

  6. house_cat 's blog

    本人蒟蒻,ACM退役选手 可能会刷刷CF,写一下笔记,学一点JAVA 欢迎指正:QQ:1468580561 不要忘记努力,不要辜负自己

  7. 2. laravel 5.5 学习 过程中 遇到问题 的 链接

    关于 laravel 5.5 的文档 网络上已经太多 就不些太多重复的话了 在以后的 工作 中遇到问题的 查询到的解决方案 或者 相关文档将会具体写在这里 laravel 5.5 中文文档 https ...

  8. Java 面向对象概述原理: 多态、Object类,转型(8)

    Java 面向对象概述原理: 多态.Object类,转型(8) http://docs.oracle.com/javase/tutorial/java/IandI/override.html Java ...

  9. 用Chrome网页获取PDF?

    在网页浏览的时候,我常常想保存网页上的内容 这时候有几种选择,要么copy and paste,要么windows自带截图,要么就是借用tencent的截图工具... 但是对于一些用chrome预览的 ...

  10. delphpi tcp 服务和客户端 例子

    //服务器端unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, ...