次小生成树题(k) poj1679The Unique MST
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的更多相关文章
- K - The Unique MST
K - The Unique MST #include<iostream> #include<cstdio> #include<cstring> #include& ...
- POJ1679The Unique MST(次小生成树)
The Unique MST Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 25203 Accepted: 8995 D ...
- poj1679The Unique MST(次小生成树模板)
次小生成树模板,别忘了判定不存在最小生成树的情况 #include <iostream> #include <cstdio> #include <cstring> ...
- K - The Unique MST - poj 1679
题目的意思已经说明了一切,次小生成树... ****************************************************************************** ...
- POJ--1679--The Unique MST【推断MST是否唯一】
链接:http://poj.org/problem? id=1679 题意:告诉你有n个点,m条边,以及m条边的信息(起点.终点.权值).推断最小生成树是否唯一 之前是用另外一种方法做的.复杂度最高可 ...
- K - The Unique MST (最小生成树的唯一性)
Given a connected undirected graph, tell if its minimum spanning tree is unique. Definition 1 (Spann ...
- POJ1679 The Unique MST 【次小生成树】
The Unique MST Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 20421 Accepted: 7183 D ...
- POJ-1679.The Unique MST.(Prim求次小生成树)
The Unique MST Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 39561 Accepted: 14444 ...
- poj 1679 判断MST是不是唯一的 (次小生成树)
判断MST是不是唯一的 如果是唯一的 就输出最小的权值和 如果不是唯一的 就输出Not Unique! 次小生成树就是第二小生成树 如果次小生成树的权值和MST相等 那么MST就不是唯一的 法一: ...
随机推荐
- Java线程——线程之间的通信
Java中多线程间的通信是怎么实现的? 线程通信的方式: (1)共享变量 线程之间的通信可以通过发送信号,发送信号的一个简单方法就是再共享的对象里面设置信号值.线程A在一个同步块中设置boolean型 ...
- 37. docker swarm docker service 的更新
在service 运行的情况下 进行更新 1. 创建 名为 demo 的 overlay 网络 docker network create -d overlay demo 2. 创建 python-f ...
- C++对象数组与对象指针
(一)对象数组 将具有相同类类型的对象有序地集合在一起便构成了对象数组,以一维对象数组为例,其定义形式为: 类名 对象数组名[]; Point points[100]; 关于对象数组的几点说明: (1 ...
- 01 语言基础+高级:1-6 集合_day03【List、Set、Collections工具类】
day03 [List.Set.数据结构.Collections] 主要内容 数据结构 List集合 Set集合 Collections 第一章 数据结构 2.1 数据结构有什么用 我们将常见的数据结 ...
- day66-CSS伪类选择器和伪元素选择器
1. 伪类选择器:hover 和 focus 比较常用. 1.1 hover:把鼠标移动到内容迈腾2020款TSI DSG舒适型的时候,字体变成了红色. html: <body> < ...
- py02_02:pyc的解释
1. Python是一门解释型语言吗? 我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在.如果是解释型语言 ...
- 将iso mount 到nfs 目录问题
最近有个需求,需要在多台系统安装程序,安装文件是iso 格式的,最普通的办法就是拷贝到其它系统,然后mount loop 到本地目录. 但是比较麻烦,而且当前已经有一个nfs 服务端了,于是想出一个办 ...
- 可视化---matplotlib
中文乱码 # 解决matplotlib显示中文问题 # 指定默认字体 plt.rcParams[font.sans-serif]=['SimHei'] # 解决保存图像是负号'-'显示为方块的问题 p ...
- 实现迭代器(\_\_next\_\_和\_\_iter\_\_)
目录 实现迭代器(__next__和__iter__) 一.简单示例 二.StopIteration异常版 三.模拟range 四.斐波那契数列 实现迭代器(__next__和__iter__) 一. ...
- abstract关键字、final关键字、static关键字、访问修饰符详解
abstract关键字.final关键字.static关键字.访问修饰符详解 abstract关键字: final关键字: static关键字: 访问修饰符: