poj 2349 求最小生成树里面第m长的边
题目链接:https://vjudge.net/problem/POJ-2349
题意:

题目就是要我们找到一个最小的值D,把图里面所有大于D的边去掉之后剩余的连通分支的数量为S。这个就是找这个图里面最小生成树的第S大的边(也就是第n-S小的边),我们可以依照求最小生成树的过程来,首先对于每一个单点,我们把它看成一个点集,这样一开始我们有n个点集,然后我们找一条距离最小的边,合并边连接的两个点集,这样集合总数就变成了n-1个,假设我们要找一个最小的D,去掉大于D的边,使得连通分支数位n-1,那么这个最小D值就是最小的边的权值;依此类推,我们找到第二小的边(并且边连接两个点不在一个集合里面),连接边两边的点集,这样连通分支数就变成了n-2个,这条边的权值就是一个最小的D,去掉大于D后连通分支数变成了n-2个。然后我们要使得连通分支数为S,那么我们就找最小生成树里面第n-S小的边。
代码:
#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
#include<map>
#include<stack>
#include<cmath>
#include<vector>
#include<set>
#include<cstdio>
#include<string>
#include<deque>
using namespace std;
typedef long long LL;
#define eps 1e-8
#define INF 0x3f3f3f3f
#define maxn 1005
/*struct point{
int u,w;
};
bool operator <(const point &s1,const point &s2)
{
if(s1.w!=s2.w)
return s1.w>s2.w;
else
return s1.u>s2.u;
}*/
];
struct EDGE{
int u,v;
double w;
}edge[];
struct node{
double x,y;
}dot[];
double cal_dis(int a,int b){//去a,b两点距离
return sqrt((dot[a].x-dot[b].x)*(dot[a].x-dot[b].x)+(dot[a].y-dot[b].y)*(dot[a].y-dot[b].y));
}
bool cmp(EDGE s1,EDGE s2){//排序
return s1.w<s2.w;
}
int find(int a){
if(pre[a]==a)
return a;
return pre[a]=find(pre[a]);
}
int main()
{
scanf("%d",&t);
while(t--){
scanf("%d%d",&m,&n);
;i<=n;i++)
scanf("%lf%lf",&dot[i].x,&dot[i].y);
;
;i<=n;i++)
pre[i]=i;
;i<n;i++){
;j<=n;j++){
++cnt;
edge[cnt].u=i;
edge[cnt].v=j;
edge[cnt].w=cal_dis(i,j);
}
}
sort(edge+,edge+cnt+,cmp);
double ans;
m=n-m;
;m;i++){//找最小生成树里面第m小的边
int u=edge[i].u;
int v=edge[i].v;
double w=edge[i].w;
int x=find(u);
int y=find(v);
if(x!=y){
m--;
pre[x]=y;
if(!m){
ans=w;
break;
}
}
}
printf("%.2lf\n",ans);
}
;
}
poj 2349 求最小生成树里面第m长的边的更多相关文章
- Poj(2349),最小生成树的变形
题目链接:http://poj.org/problem?id=2349 Arctic Network Time Limit: 2000MS Memory Limit: 65536K Total S ...
- poj 2485 求最小生成树中 最长的一条边
Sample Input 1 //T 3 //n0 990 692 //邻接矩阵990 0 179692 179 0Sample Output 692 prim # include <iostr ...
- poj 2349 求MST中第S大的权值
题目大意: 有一些炮台,如果这个炮台有卫星接收器,那么任意两个有卫星接收器的炮台可以通信,不受距离限制:否者,两个炮台之间只能通过对讲机通信,这是受距离限制的.要买一种对讲机,用在需要的炮台上,要求所 ...
- POJ 2395 Out of Hay(求最小生成树的最长边+kruskal)
Out of Hay Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18472 Accepted: 7318 Descr ...
- poj 2349 Arctic Network(最小生成树的第k大边证明)
题目链接: http://poj.org/problem?id=2349 题目大意: 有n个警戒部队,现在要把这n个警戒部队编入一个通信网络, 有两种方式链接警戒部队:1,用卫星信道可以链接无穷远的部 ...
- POJ 2349 Arctic Network (最小生成树)
Arctic Network Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Subm ...
- POJ 2349 Arctic Network(最小生成树,第k大边权,基础)
题目 /*********题意解说——来自discuss——by sixshine**************/ 有卫星电台的城市之间可以任意联络.没有卫星电台的城市只能和距离小于等于D的城市联络.题 ...
- (poj)1679 The Unique MST 求最小生成树是否唯一 (求次小生成树与最小生成树是否一样)
Description Given a connected undirected graph, tell if its minimum spanning tree is unique. Definit ...
- POJ 1458 Common Subsequence(LCS最长公共子序列)
POJ 1458 Common Subsequence(LCS最长公共子序列)解题报告 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?c ...
随机推荐
- 【mysql】工具使用
mysql之workbench如何只导出(insert语句)数据 MySQL 编码:utf8 与 utf8mb4,utf8mb4_unicode_ci 与 utf8mb4_general_ci htt ...
- CSV表格融合
常用表格融合函数 1 merge() 用于融合的函数 https://blog.csdn.net/brucewong0516/article/details/82707492 pd.merge(lef ...
- kafka原理和实践(四)spring-kafka消费者源码
系列目录 kafka原理和实践(一)原理:10分钟入门 kafka原理和实践(二)spring-kafka简单实践 kafka原理和实践(三)spring-kafka生产者源码 kafka原理和实践( ...
- Mvc项目实例 MvcMusicStore 五
Mvc项目实例 MvcMusicStore 一Mvc项目实例 MvcMusicStore 二Mvc项目实例 MvcMusicStore 三Mvc项目实例 MvcMusicStore 四Mvc项目实例 ...
- C# Interview Question 1
What is C#? What's the feature of C# language? Answer:
- Android jni中回调java的方法
在上一篇的基础上,添加在C++代码中回调java方法. 代码如下: Demo.java 中添加callback函数, 打印一条log. package com.example.scarecrow.dy ...
- NFC应用于公交卡
NFC应用于公交卡https://www.cnblogs.com/liuzhaoyzz/p/7115098.html 带有NFC功能的安卓手机可以给实体公交卡充值,手机虚拟公交卡现在有两种方案,一种是 ...
- sharepoint环境安装过程中几点需要注意的地方
写在前面 上篇文章也说明了,在安装sharepoint环境的时候,确实吃了不少苦头,这里纪录一下安装过程中遇到的几个问题. 安装环境 windows server 2012 r2 standard x ...
- Rest API的简单应用
写在前面 最近一直在搞通过Rest api的方式读取sharepoint文档库中的内容.有些地方需要注意,在此做下记录. 步骤 启动sharepoint服务器的服务 这里可以使用脚本的方式进行启动,脚 ...
- Chapter4 复杂度分析(下):浅析最好,最坏,平均,均摊时间复杂度
四个复杂度分析: 1:最好情况时间复杂度(best case time complexity) 2:最坏情况时间复杂度(worst case time complexity) 3:平均情况时间复杂度( ...