【JZOJ5353】村通网
description
为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里每座建筑都连上互联网,方便未来随时随地网购农药。
他的农庄很大,有N 座建筑,但地理位置偏僻,网络信号很差。
一座建筑有网,当且仅当满足以下至少一个条件:
1、给中国移动交宽带费,直接连网,花费为A。
2、向另外一座有网的建筑,安装共享网线,花费为B×两者曼哈顿距离。
现在,农夫约已经统计出了所有建筑的坐标。他想知道最少要多少费用才能达到目的。
analysis
这题的思路和模型可以非常巧妙来转变
新加入一个点,从这个点向每一个点连一条权值为AAA的边
剩余的点两两连一条边,然后直接做一次MSTMSTMST即可
可以感性理解,这样的边权和是最小的
code
#pragma GCC optimize("O3")
#pragma G++ optimize("O3")
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define MAXN 1005
#define MAXM MAXN*MAXN
#define ll long long
#define reg register ll
#define fo(i,a,b) for (reg i=a;i<=b;++i)
#define fd(i,a,b) for (reg i=a;i>=b;--i)
#define O3 __attribute__((optimize("-O3")))using namespace std;ll x[MAXN],y[MAXN],fa[MAXN];
ll n,A,B,tot,ans;struct node
{ll x,y,z;
}a[MAXM];O3 inline ll read()
{ll x=0,f=1;char ch=getchar();while (ch<'0' || '9'<ch){if (ch=='-')f=-1;ch=getchar();}while ('0'<=ch && ch<='9')x=x*10+ch-'0',ch=getchar();return x*f;
}
O3 inline bool cmp(node a,node b)
{return a.z<b.z;
}
O3 inline ll getfa(ll x)
{return !fa[x]?x:fa[x]=getfa(fa[x]);
}
O3 int main()
{freopen("pupil.in","r",stdin);freopen("pupil.out","w",stdout);n=read(),A=read(),B=read();fo(i,1,n)x[i]=read(),y[i]=read();fo(i,1,n){a[++tot].x=i,a[tot].y=n+1,a[tot].z=A;fo(j,i+1,n){a[++tot].x=i,a[tot].y=j,a[tot].z=B*(abs(x[i]-x[j])+abs(y[i]-y[j]));}}n=tot,sort(a+1,a+n+1,cmp);fo(i,1,n){ll x=a[i].x,y=a[i].y,z=a[i].z;if (getfa(x)!=getfa(y))fa[getfa(x)]=getfa(y),ans+=z;}printf("%lld\n",ans);return 0;
}
【JZOJ5353】村通网相关推荐
- 【深度学习】村通网之——谈谈Tensorflow Eager Execution机制之新特性示例(二)
文章目录 前言 直接使用operation进行卷积操作 自动计算梯度(导数) 计算所有参数的梯度 计算所有变量的梯度 使用Python程序流程控制模型流程 自动优化 前言 本文是[深度学习]村通网之- ...
- 【最小生成树】JZOJ_5353 村通网
题意 有NNN个村,它们需要联网,联网的方式有两种: 1.直接联网,花费AAA元 2.与另一个村连起来,花费B∗B*B∗它们之间的曼哈顿距离,如果另一个村有网,那么这个村也会有网. 求最小花费. 思路 ...
- 【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 ...
- 【村通网】凭啥说python3.6+字典(dict)是有序的?
同样的运行下面这段代码 a = {'name':'tom','age':'18','tt':'11','tom':'222'} for i in a.keys():print(i) python 3. ...
- JZOJ 5353. 村通网
.. 题目: 分析: 代码: 题目: 传送门 分析: 表示最小生成树很可做 代码: #include<iostream> #include<cstdio> #include&l ...
最新文章
- java开发环境变量配置-JDK11-(win10),重启之后环境变量配置失效的解决办法
- Oracle常用dump命令
- 面向过程和面向对象编程的优缺点
- 前端开发--播放页面评论区业务逻辑初步
- Go标准库Context
- 安卓中的对话框通知---简单的对话框入门
- oracle 性能优化 07_诊断事件
- 【机器学习】opencv-数据预处理
- RACSignal的Subscription深入分析
- Query UI DateRangePicker自定义面板个数
- python复杂代码示例_6 个例子教你重构 Python 代码
- 软件项目的托管平台gitHub
- 泰牛php第10期百度云,泰牛程序员 韩顺平 2017年 MyBatis
- 阵列卡u盘安装系统步骤_Dell的R720服务器使用U盘安装系统
- Java+MySQL实现网络爬虫程序
- 小米手机android程序闪退,小米手机软件闪退是什么原因
- python中shuffle是什么意思_python中shuffle()方法的功能详解
- SAP-财务-统驭科目
- ADC类型和技术指标
- 用好WinXP自带的虚拟光驱