题意

有NNN个村,它们需要联网,联网的方式有两种:
1、直接联网,花费AAA元
2、与另一个村连起来,花费B∗B*B∗它们之间的曼哈顿距离,如果另一个村有网,那么这个村也会有网。
求最小花费。

思路

直接做最小生成树,特别要注意的是,如果两村连起来的花费超过AAA元我们就不连,因为直接联网会比这样更优,最后给每个联通块加上AAA,表示每个块都有一个村有网共享给它们。

代码

#include<cmath>
#include<cstdio>
#include<algorithm>struct node{int x, y, v;
}e[1000001];int x[1001], y[1001], fa[1001];
int ans;int find(int x) {return x == fa[x] ? x : fa[x] = find(fa[x]);
}int cmp(node x, node y) {return x.v < y.v;
}int main() {int n, a, b, cnt = 0;scanf("%d %d %d", &n, &a, &b);for (int i = 1; i <= n; i++)scanf("%d %d", &x[i], &y[i]);for (int i = 1; i < n; i++)for (int j = i + 1; j <= n; j++)e[++cnt] = (node){i, j, abs(x[i] - x[j]) + abs(y[i] - y[j])};for (int i = 1; i <= n; i++)fa[i] = i;std::sort(e + 1, e + cnt + 1, cmp);for (int i = 1; i <= n; i++) {int f1 = find(e[i].x), f2 = find(e[i].y);if (f1 == f2) continue;if (e[i].v * b <= a) {fa[f1] = f2;ans += e[i].v * b;}}for (int i = 1; i <= n; i++)if (fa[i] == i) ans += a;printf("%d", ans);
}

【最小生成树】JZOJ_5353 村通网相关推荐

  1. 【深度学习】村通网之——谈谈Tensorflow Eager Execution机制之新特性示例(二)

    文章目录 前言 直接使用operation进行卷积操作 自动计算梯度(导数) 计算所有参数的梯度 计算所有变量的梯度 使用Python程序流程控制模型流程 自动优化 前言 本文是[深度学习]村通网之- ...

  2. 【JZOJ5353】【NOIP2017提高A组模拟9.9】村通网【最小生成树】

    题目大意: 题目链接:https://jzoj.net/senior/#main/show/5353 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里每座建筑都连上互联网, ...

  3. JZOJ 5353. 【NOIP2017提高A组模拟9.9】村通网

    Description 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里每座建筑都连上互联网,方便未来随时随地网购农药. 他的农庄很大,有N 座建筑,但地理位置偏僻,网络信 ...

  4. [jzoj 5353] 村通网 {kruskal算法}

    Description 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里每座建筑都连上互联网,方便未来随时随地网购农药. 他的农庄很大,有N 座建筑,但地理位置偏僻,网络信 ...

  5. 8.14-T1村通网(pupil)

    题目大意 要建设一个村庄的网络 有两种操作可选 1.给中国移动交宽带费,直接连网,花费为 A. 2.向另外一座有网的建筑,安装共享网线,花费为 B×两者曼哈顿距离. 题解 显然的最小生成树的题 见一个 ...

  6. 2018.12.30【NOIP提高组】模拟A组 JZOJ 5353 村通网

    大意 有nnn个城市,现在要让每个城市都有网.对于每个城市,有两种方法开网 花AAA元 连接别的有网的城市,花费B×B\timesB×它们间的曼哈顿距离 思路 最小生成树裸题不解释. 代码 #incl ...

  7. JZOJ 5353. 村通网

    .. 题目: 分析: 代码: 题目: 传送门 分析: 表示最小生成树很可做 代码: #include<iostream> #include<cstdio> #include&l ...

  8. 【JZOJ5353】村通网

    description 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里每座建筑都连上互联网,方便未来随时随地网购农药. 他的农庄很大,有N 座建筑,但地理位置偏僻,网络信 ...

  9. 【村通网】凭啥说python3.6+字典(dict)是有序的?

    同样的运行下面这段代码 a = {'name':'tom','age':'18','tt':'11','tom':'222'} for i in a.keys():print(i) python 3. ...

最新文章

  1. CHIL-SQL-MIN() 函数
  2. 十大开源的.NET用户界面框架 让GUI设计不再犯难
  3. linux连sql server
  4. 杨校老师课堂之Java类与对象、封装、构造方法
  5. easyUI的combobox设置隐藏和显示
  6. c++检测ip是否匹配子网掩码_网络工程师从入门到精通通俗易懂系列 | ARP和IP这篇文章讲的相当详细了,这么基础的知识往往也是最容易遗忘的!...
  7. 看美国如何实现农业大数据的建设
  8. 数组名不等于指针---sizeof()函数求数组大小错误问题
  9. 数组赋偶数值并求出平均值
  10. JavaScript基础(三)
  11. 主线剧情0.0-Linux学习资源大综合
  12. 官方VM tools下载地址
  13. “开宝五子棋读谱”软件的隐私政策和权限说明
  14. 腾讯云服务器配置LNMP环境并安装wordpress
  15. C# 中的委托和事件[转自张子扬]
  16. Ubuntu16.04系统+GTX1050TI显卡的tensorflow1.6(GPU版)安装-详细图文
  17. python源码实例之根据生日预测星座和属相以及属相对应年份(附源码 可供学习)
  18. Java学习路线,java学习教程(入门到精通)
  19. Windows bat 脚本命令基础
  20. 微信开发者小程序项目拉取与推送

热门文章

  1. 深圳捷迅YL-800MT PE13管脚千万不能悬空
  2. 在线文字转成语音怎么转
  3. ehviewer怎么搜索关键字_ehviewer
  4. C++计算a的b次方的算法(附完整源码)
  5. 【tutorabc多少钱一节课】上完课的我来说说真实感想
  6. 《太阁立志传4》 所有武将卡的取得
  7. android学习笔记----ListView和各种适配器简介
  8. NCP1342芯片替代料PN8213 65W氮化镓充电器方案
  9. Golang连接kafka报错: Errorkafka: client has run out of available brokers to talk to
  10. 3D立体显示技术原理与游戏应用历程简介