poj1287:http://poj.org/problem?id=1287

题意:平面上有许多点,又有许多边。每条边有一定的长度,且只会连接两个不同的点。现需要从这些边中选择某些边,使得尽可能多的点直接或间接相连。同时,又要选取的边的总长度最小。

题解:本题就是去除重边,然后kruska运用。去重时候,我采用一个二维数组选取最小的边放进数组,然后遍历数组,如果有边则struct存入要处理的边。但是,看了别人的看法;程中可无视重边,因为排序之后,每次总是把最小的边加入,而且没两个点只能加一次,所以可以无视。

 #include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
const int MAXN=;
const int MAXM=;
int pa[MAXN],cnt;
int g[][]; //记录最短边
struct Node{
int u;
int v;
int w;
bool operator<(const Node &a)const{
return w<a.w;
}
}edge[MAXM];
int n,m;
void UFset(){//初始化
for(int i=;i<=n;i++)
pa[i]=-;
}
int Find(int x){
int s;
for(s=x;pa[s]>=;s=pa[s]);
while(s!=x){
int temp=pa[x];
pa[x]=s;
x=temp;
}
return s;
}
void Union(int R1,int R2){
int r1=Find(R1);
int r2=Find(R2);
int temp=pa[r1]+pa[r2];
if(pa[r1]>pa[r2]){
pa[r1]=r2;
pa[r2]=temp;
}
else{
pa[r2]=r1;
pa[r1]=temp;
} }
void kruskal(){
int sum=;
int u,v;
int num=;
UFset();
for(int i=;i<cnt;i++){
u=edge[i].u;v=edge[i].v;
if(Find(u)!=Find(v)){
sum+=edge[i].w;
Union(u,v);
num++;
}
if(num>=n-)break; }
printf("%d\n",sum); }
int main(){
int a,b,w;
while(~scanf("%d",&n)&&n){
scanf("%d",&m);
cnt=;
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
g[i][j]=;
for(int i=;i<=m;i++){
scanf("%d%d%d",&a,&b,&w);
if(g[a][b]>w){//去重
g[a][b]=g[b][a]=w; }
}
for(int i=;i<=n;i++)
for(int j=;j<=n;j++){
if(g[i][j]!=){//转化边
edge[cnt].u=i;
edge[cnt].v=j;
edge[cnt++].w=g[i][j];
g[i][j]=g[j][i]=;
}
} sort(edge+,edge+cnt);//排序
kruskal();
}
}

Networking的更多相关文章

  1. 信息中心网络 ,Information-centric networking, ICN

  2. Unity 官网教程 -- Multiplayer Networking

    教程网址:https://unity3d.com/cn/learn/tutorials/topics/multiplayer-networking/introduction-simple-multip ...

  3. 延迟容忍网络(Delay-tolerant networking)

    标签: 网络networking存储工作network路由器 2012-03-24 10:01 3702人阅读 评论(0) 收藏 举报 分类: 计算机网络(12) 版权声明:本文为博主原创文章,对文章 ...

  4. OpenStack Networking overview

    原文地址:http://docs.openstack.org/newton/install-guide-ubuntu/neutron-concepts.html Networking service ...

  5. Openstack Basic Networking 翻译

    自己翻译,加强理解.并学习英文和写作. 英文地址:http://docs.openstack.org/networking-guide/intro_basic_networking.html 目录: ...

  6. 【Networking】容器网络大观 && SDN 资料汇总

    SDNLAB技术分享(十五):容器网络大观   SDNLAB君• 16-06-17 •2957 人围观 编者按:本文系SDNLAB技术分享系列,本次分享来自SDN撕X群(群主:大猫猫)群直播,我们希望 ...

  7. 微软职位内部推荐-Sr. SW Engineer for Azure Networking

    微软近期Open的职位: Senior SW Engineer The world is moving to cloud computing. Microsoft is betting Windows ...

  8. Unity Networking API文档翻译(二):The High Level API

    高级API (HLAPI) 是用来提供给Unity 创建多人在线游戏的组件.它是在底层传输层的基础上构建的, 对多人在线游戏提供了很多通用的功能.当传输层支持各种网络拓扑结构的时候,HLAPI是一个功 ...

  9. Unity Networking API文档翻译(一):Networking概述

    写在翻译前的话:      我使用过Photon,研究过Ulink这些Unity提供的多人在线游戏服务器组件,这些商业组件虽然很好很强大.但是对于一个独立开发者来说,4000多软妹币还是点多.总想找一 ...

  10. Unity5.1 新的网络引擎UNET(十五) Networking 引用--上

    http://blog.csdn.net/u010019717/article/details/46993697 孙广东  2015.7.21 本节提供了与网络系统一起使用的组件的详细信息. 1.Ne ...

随机推荐

  1. Latex插入图片 分类: LaTex 2014-11-18 20:07 261人阅读 评论(0) 收藏

    在Latex中插入图片的方式很多,我这里只介绍自己常用的一种方式,欢迎大家指导. 我习惯于使用graphicx宏包来插入图片,有时候会配合上subfigure宏包来同时插入多幅图片组合. 首先,需要在 ...

  2. iOS View的Frame和bounds之区别,setbounds使用(深入探究)

    前言: 在ios开发中经常遇到两个词Frame和bounds,本文主要阐述Frame和bound的区别,尤其是bound很绕,较难理解. 一.首先,看一下公认的资料: 先看到下面的代码你肯定就明白了一 ...

  3. Web的鼠标拖动效果

    以前写过一个拖动效果的Demo,拖拽元素新位置的计算是放在拖拽元素的mousemove事件中进行的.计算效率差,而且效果不好.所以一直有想怎样才能做出jquery-ui那种顺滑的拖拽效果. 其实顺滑的 ...

  4. PHP环境搭建所遇到的问题

    下午学校的机房搭建PHP组合包appserv开发环境的时候是没有任何问题的,但是到了自己的电脑上以后下砸的32位appserve一直无法正常由浏览器的localhos或者127.0.0.1 进入其ap ...

  5. EF6.0+Mysql的问题

    最近在项目中使用EF for Mysql的时候遇到一个问题 public OrderManage GetOrders(OrderSearchCriteria criteria) { using (va ...

  6. html multiple select option 分组

    普通html方式展示<select name="viewType" style="width: 100%;height: 300px;" multiple ...

  7. .NET中的三种Timer的区别和用法(转)

      最近正好做一个WEB中定期执行的程序,而.NET中有3个不同的定时器.所以正好研究研究.这3个定时器分别是: //1.实现按用户定义的时间间隔引发事件的计时器.此计时器最宜用于 Windows 窗 ...

  8. mysql locktables

    SELECT      r.trx_id waiting_trx_id,      r.trx_mysql_thread_id waiting_thread,      TIMESTAMPDIFF(  ...

  9. Maven搭建Spring+Struts2+Hibernate项目详解

    http://www.bubuko.com/infodetail-648898.html

  10. left join 和 left outer join 有什么区别?

    left join 是left outer join的简写,left join默认是outer属性的.outer join则会返回每个满足第一个(顶端)输入与第二个(底端)输入的联接的行.它还返回任何 ...