给出结点的坐标 以及已建好的边 要输出MST中加入的边(已建好的边就不用输出了)
结点的编号从1开始
注意这题只有一组数据 不能用多组输入 否则就超时(在这被坑惨了Orz)

Sample Input

9
1 5
0 0
3 2
4 5
5 1
0 4
5 2
1 2
5 3
3
1 3
9 7
1 2
Sample Output

1 6
3 7
4 9
5 7
8 3

 # include <iostream>
# include <cstdio>
# include <cstring>
# include <algorithm>
# include <cmath>
# define LL long long
using namespace std ; const int INF=0x3f3f3f3f;
const int MAXN=;
bool vis[MAXN];
double lowc[MAXN];
int n ;
double cost[MAXN][MAXN] ;
int pre[MAXN] ; struct poin
{
int x ;
int y ;
}p[MAXN]; void Prim()
{
memset(vis,false,sizeof(vis));
vis[]=true;
for(int i=;i<=n;i++)
{
lowc[i]=cost[][i];
pre[i] = ;
} for(int i=;i<=n;i++)
{
double minc=INF;
int p=-;
for(int j=;j<=n;j++)
if(!vis[j]&&minc>lowc[j])
{
minc=lowc[j];
p=j;
}
if(minc != )
{
printf("%d %d\n",pre[p],p);
}
if (p == -)
return ;
vis[p]=true;
for(int j=;j<=n;j++)
if(!vis[j]&&lowc[j]>cost[p][j])
{
lowc[j]=cost[p][j];
pre[j]=p;
}
}
return ;
} int main()
{ //freopen("in.txt","r",stdin) ;
scanf("%d" , &n) ;
int i , j ;
for (i = ; i <= n ; i++)
scanf("%d %d" , &p[i].x , &p[i].y) ;
for (i = ; i <= n ; i++)
{
cost[i][i] = INF ;
for (j = i+ ; j <= n ; j++)
{
double t = sqrt((double)(p[i].x - p[j].x) * (p[i].x - p[j].x) + (p[i].y - p[j].y) * (p[i].y - p[j].y)) ;
cost[i][j] = t ;
cost[j][i] = t ;
}
} int m , u , v ;
scanf("%d" , &m) ;
while(m--)
{
scanf("%d %d" , &u , &v) ;
cost[u][v] = ;
cost[v][u] = ;
}
Prim() ; return ;
}

poj 1751 输出MST中新加入的边的更多相关文章

  1. poj 2349 求MST中第S大的权值

    题目大意: 有一些炮台,如果这个炮台有卫星接收器,那么任意两个有卫星接收器的炮台可以通信,不受距离限制:否者,两个炮台之间只能通过对讲机通信,这是受距离限制的.要买一种对讲机,用在需要的炮台上,要求所 ...

  2. 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度。 2)输出字符串中第一个出现字母a的位置。 3)在字符串的第3个字符后面插入子串“hello”,输出新字符串。 4)将字符串“hello”替换为“me”,输出新字符串。 5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。 */

    namespace test4 {/* 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度. 2)输出字符串中第一个出现字母a的位置. 3)在字符串的第3个字符 ...

  3. HTML5中新添加事件

    HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享.今天为大家介绍的事件主 ...

  4. POJ 1751 Highways (最小生成树)

    Highways Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit Sta ...

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

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

  6. Unity5中新的Shader体系简析

    一.Unity5中新的Shader体系简析 Unity5和之前的书写模式有了一定的改变.Unity5时代的Shader Reference官方文档也进一步地变得丰满. 主要需要了解到的是,在原来的Un ...

  7. Day029 JDK8中新日期和时间API (二)

    # JDK8中新日期和时间API (二) Instant介绍 Instant:时间线上的一个瞬时点. 这可能被用来记录应用程序中的事件时间 戳. 在处理时间和日期的时候,我们通常会想到年,月,日,时, ...

  8. 【Azure 云服务】Azure Cloud Service 为 Web Role(IIS Host)增加自定义字段 (把HTTP Request Header中的User-Agent字段增加到IIS输出日志中)

    问题描述 把Web Role服务发布到Azure Cloud Service后,需要在IIS的输出日志中,把每一个请求的HTTP Request Header中的User-Agent内容也输出到日志中 ...

  9. UWP中新加的数据绑定方式x:Bind分析总结

    UWP中新加的数据绑定方式x:Bind分析总结 0x00 UWP中的x:Bind 由之前有过WPF开发经验,所以在学习UWP的时候直接省略了XAML.数据绑定等几个看着十分眼熟的主题.学习过程中倒是也 ...

随机推荐

  1. FZU - 1989 AntiAC

     Problem 1989 AntiAC Accept: 93    Submit: 444Time Limit: 4000 mSec    Memory Limit : 32768 KB  Prob ...

  2. ubuntu 18.04下character_set_server设置为utf8

    打开/etc/mysql/mysql.conf.d/mysql.cnf添加以下代码: character-set-server = utf8 然后重启mysql即可

  3. Docker入门02——Dockerfile详解

    基本示例 FROM MAINTAINER LABEL RUN ADD COPY CMD ENTRYPOINT ENV EXPOSE VOLUME WORKDIR USER ARG 基本示例 # Thi ...

  4. ADB not responding

    1.如下错误: 2.执行 如下代码 : netstat -aon|findstr "5037" 3.打开任务管理器  找到PID 为 5536 的进程  将该进程关闭 4.重启 A ...

  5. OpenCV入门(1)- 简介

    1.图像的表示 在计算机看来,图像只是一些亮度各异的点,一副M*N的图片可以用M*N的矩阵来表示,矩阵的值表示这个位置上像素的亮度. 一般灰度图用二维矩阵来表示,彩色(多通道)图用三维矩阵表示,大部分 ...

  6. luogu P4778 Counting swaps

    计数套路题?但是我连套路都不会,,, 拿到这道题我一脸蒙彼,,,感谢@poorpool 大佬的博客的指点 先将第\(i\)位上的数字\(p_i\)向\(i\)连无向边,然后构成了一个有若干环组成的无向 ...

  7. java删除文件及其目录

    1.删除指定文件路径 public @ResponseBody String deleteFiles(HttpServletRequest request) { log.info(this.getCl ...

  8. Python写黑客小工具,360免杀

    构思: client:反向连接server,执行shell命令 server:发送命令,控制客户端 import subprocess import socket import threading t ...

  9. 【vim】实时计算器

    在插入模式下,你可以使用 Ctrl+r 键然后输入 =,再输入一个简单的算式.按 Enter 键,计算结果就会插入到文件中.例如,尝试输入: Ctrl+r '=2+2' ENTER 然后计算结果&qu ...

  10. [转]UART通信简介

    1.前言 UART通信,即通用异步收发传输器(Universal Asynchronous Receiver/Transmitter). 串行通信是指利用一条传输线将资料一位位地顺序传送.特点是通信线 ...