【最小生成树】JZOJ_5353 村通网
题意
有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 村通网相关推荐
- 【深度学习】村通网之——谈谈Tensorflow Eager Execution机制之新特性示例(二)
文章目录 前言 直接使用operation进行卷积操作 自动计算梯度(导数) 计算所有参数的梯度 计算所有变量的梯度 使用Python程序流程控制模型流程 自动优化 前言 本文是[深度学习]村通网之- ...
- 【JZOJ5353】【NOIP2017提高A组模拟9.9】村通网【最小生成树】
题目大意: 题目链接:https://jzoj.net/senior/#main/show/5353 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里每座建筑都连上互联网, ...
- JZOJ 5353. 【NOIP2017提高A组模拟9.9】村通网
Description 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里每座建筑都连上互联网,方便未来随时随地网购农药. 他的农庄很大,有N 座建筑,但地理位置偏僻,网络信 ...
- [jzoj 5353] 村通网 {kruskal算法}
Description 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里每座建筑都连上互联网,方便未来随时随地网购农药. 他的农庄很大,有N 座建筑,但地理位置偏僻,网络信 ...
- 8.14-T1村通网(pupil)
题目大意 要建设一个村庄的网络 有两种操作可选 1.给中国移动交宽带费,直接连网,花费为 A. 2.向另外一座有网的建筑,安装共享网线,花费为 B×两者曼哈顿距离. 题解 显然的最小生成树的题 见一个 ...
- 2018.12.30【NOIP提高组】模拟A组 JZOJ 5353 村通网
大意 有nnn个城市,现在要让每个城市都有网.对于每个城市,有两种方法开网 花AAA元 连接别的有网的城市,花费B×B\timesB×它们间的曼哈顿距离 思路 最小生成树裸题不解释. 代码 #incl ...
- JZOJ 5353. 村通网
.. 题目: 分析: 代码: 题目: 传送门 分析: 表示最小生成树很可做 代码: #include<iostream> #include<cstdio> #include&l ...
- 【JZOJ5353】村通网
description 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里每座建筑都连上互联网,方便未来随时随地网购农药. 他的农庄很大,有N 座建筑,但地理位置偏僻,网络信 ...
- 【村通网】凭啥说python3.6+字典(dict)是有序的?
同样的运行下面这段代码 a = {'name':'tom','age':'18','tt':'11','tom':'222'} for i in a.keys():print(i) python 3. ...
最新文章
- CHIL-SQL-MIN() 函数
- 十大开源的.NET用户界面框架 让GUI设计不再犯难
- linux连sql server
- 杨校老师课堂之Java类与对象、封装、构造方法
- easyUI的combobox设置隐藏和显示
- c++检测ip是否匹配子网掩码_网络工程师从入门到精通通俗易懂系列 | ARP和IP这篇文章讲的相当详细了,这么基础的知识往往也是最容易遗忘的!...
- 看美国如何实现农业大数据的建设
- 数组名不等于指针---sizeof()函数求数组大小错误问题
- 数组赋偶数值并求出平均值
- JavaScript基础(三)
- 主线剧情0.0-Linux学习资源大综合
- 官方VM tools下载地址
- “开宝五子棋读谱”软件的隐私政策和权限说明
- 腾讯云服务器配置LNMP环境并安装wordpress
- C# 中的委托和事件[转自张子扬]
- Ubuntu16.04系统+GTX1050TI显卡的tensorflow1.6(GPU版)安装-详细图文
- python源码实例之根据生日预测星座和属相以及属相对应年份(附源码 可供学习)
- Java学习路线,java学习教程(入门到精通)
- Windows bat 脚本命令基础
- 微信开发者小程序项目拉取与推送
热门文章
- 深圳捷迅YL-800MT PE13管脚千万不能悬空
- 在线文字转成语音怎么转
- ehviewer怎么搜索关键字_ehviewer
- C++计算a的b次方的算法(附完整源码)
- 【tutorabc多少钱一节课】上完课的我来说说真实感想
- 《太阁立志传4》 所有武将卡的取得
- android学习笔记----ListView和各种适配器简介
- NCP1342芯片替代料PN8213 65W氮化镓充电器方案
- Golang连接kafka报错: Errorkafka: client has run out of available brokers to talk to
- 3D立体显示技术原理与游戏应用历程简介