SSL 2731_村通网_最小生成树

题目描述

为了加快社会主义现代化,建设学校,小明决定给学校里每台电脑都连上互联网,方便未来随时随地玩耍。 
他的电脑室很大,有N 台电脑,但地理位置偏僻,网络信号很差。 
一台电脑有网,当且仅当满足以下至少一个条件: 
1、给中国移动交宽带费,直接连网,花费为A。 
2、向另外一台有网的电脑,安装共享网线,花费为B×两者曼哈顿距离。 
现在,小明已经统计出了所有电脑的坐标。他想知道最少要多少费用才能达到目的。


思路

将全部点相连,边权为两点的两者曼哈顿距离*B

在用一个点i‘和全部点相连全职为A

跑最小生成树即可


#include <stdio.h>
#include <algorithm>
using namespace std;
#define maxn 10000005
struct edge
{
    int x, y, w;
}e[maxn];
struct arr
{
    int x, y;
}a[1005];
int f[1006];
int abs(int x)
{
    if (x < 0) return -x;
    return x;
}
int cmp(edge a, edge b)
{
    return a.w < b.w;
}
int find(int x)
{
    if (f[x] == x) return x;
    f[x] = find(f[x]);
    return f[x];
}
int insert(int x, int y)
{
    if (find(x) != find(y))
    {
        f[find(x)] = find(y);
        return 1;
    }
    return 0;
}
int main()
{
    int n, A, B;
    scanf("%d%d%d", &n, &A, &B);
    for (int i = 1; i <= n; i++)
    {
        f[i] = i;
        scanf("%d %d", &a[i].x, &a[i].y);
    }
    int l = 0;
    for (int i = 1; i <= n; i++)
        for (int j = i + 1; j <= n; j++)
            e[++l] = (edge){i, j, B * (abs(a[i].x - a[j].x) + abs(a[i].y - a[j].y))};
    for (int i = 1; i <= n; i++)
        e[++l] = (edge){0, i, A};
    sort(e + 1, e + l + 1, cmp);
    int ans = 0;
    for (int i = 1; i <= l; i++)
    {
        if (find(e[i].x) != find(e[i].y))
        {
            ans += e[i].w;
            insert(e[i].x, e[i].y);
        }
    }
    printf("%d\n", ans);
}


SSL 2731_村通网_最小生成树

时间: 2024-10-06 02:59:08

SSL 2731_村通网_最小生成树的相关文章

盛世恒通网的用户注册页面

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2 <html> 3 <head> 4 <title> 盛世恒通网的用户注册页面 </title> 5 <meta http-equiv="content-type" con

淘宝村、网红小镇……扎堆的互联网产业有那么美好吗

国人最大的爱好之一,似乎就是喜欢跟风.扎堆.不仅仅是现实生活中扎堆看热闹,更体现在社会的方方面面.尤其是一个又一个的"风口",更是让企业和创业者趋之若鹜.从团购.电商,到智能手机.O2O,再到手游.共享经济.直播--层出不穷的"扎堆"迅速改变着社会架构和大众的生活方式. 而在近日,中国第一座网红小镇"DAMARAVILLAGE颜值·艺术小镇"正式对外亮相.这意味着,直播行业不仅仅是平台扎堆,更是完成了在线下的落地和扎堆.结合此前国内为数不少的淘宝

CLOSE-UP FORMALWEAR_意大利进口_2015秋冬_男装发布会_西装图片系列_男装西装设计资料_WeArTrends时尚资讯网_国内最专业的服装设计资讯网站

CLOSE-UP FORMALWEAR_意大利进口_2015秋冬_男装发布会_西装图片系列_男装西装设计资料_WeArTrends时尚资讯网_国内最专业的服装设计资讯网站 CLOSE-UP FORMALWEAR_意大利进口_2015秋冬_男装发布会_西装图片系列_男装西装设计资料

小镇网(最小生成树)

Description 农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场.当然,他需要你的帮助.约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场.为了使花费最少,他想铺设最短的光纤去连接所有的农场.你将得到一份各农场之间连接费用的列表,你必须找出能连接所有农场并所用光纤最短的方案.每两个农场间的距离不会超过100000 Input 第一行: 农场的个数,N(3<=N<=100). 第二行..结尾: 后来的行包含了一个N*N的矩阵,

查询_观察者网_网友评论

Sub 查询_观察者网_网友评论() On Error Resume Next Cells.Clear Set oDoc = CreateObject("htmlfile") With CreateObject("WinHttp.WinHttpRequest.5.1") .Open "GET", "http://duoshuo.com/api/users/listActivity.json?user_id=8048002",

安卓开发_慕课网_百度地图_添加覆盖物

学习内容来自“慕课网” 本片学习内容接自前四篇基础 安卓开发_慕课网_百度地图 安卓开发_慕课网_百度地图_实现定位 安卓开发_慕课网_百度地图_实现方向传感器 安卓开发_慕课网_百度地图_实现模式转换 请先学习前4篇再学习本篇,因为本篇在前四篇的基础上进行代码的编写 一.新建一个类用来存放数据(距离,点赞数,介绍图等信息) 1 package com.example.map; 2 3 import java.io.Serializable; 4 import java.util.ArrayLi

查询_观察者网_不同用户的评论

Sub 查询_观察者网_不同用户的评论() On Error Resume Next Cells.Clear With CreateObject("WinHttp.WinHttpRequest.5.1") For i = 1 To 10000 .Open "GET", "http://duoshuo.com/api/users/listActivity.json?page=" & i & "&user_id=76

【盟友88物通网——物流专线管理】jquery循环Reaper某一列的值

VIEW <table id="table_list" width="720" class="tb2" cellpadding="0" cellspacing="0"> <tr > <td class="dh strong" width="40"><input type="checkbox" ><

安卓开发_慕课网_百度地图_实现模式转换

学习内容来自“慕课网” 模式转换,即地图的普通模式,罗盘模式,跟随模式之间的转换 学习内容接自前三篇 安卓开发_慕课网_百度地图 安卓开发_慕课网_百度地图_实现定位 安卓开发_慕课网_百度地图_实现方向传感器 一.模式转换通过菜单按钮来控制 所以添加对应的菜单项(红色字体部分) 1 <menu xmlns:android="http://schemas.android.com/apk/res/android" > 2 3 <item 4 android:id=&qu