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】村通网相关推荐

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

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

  2. 【最小生成树】JZOJ_5353 村通网

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

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

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

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

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

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

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

  6. 8.14-T1村通网(pupil)

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

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

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

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

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

  9. JZOJ 5353. 村通网

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

最新文章

  1. java开发环境变量配置-JDK11-(win10),重启之后环境变量配置失效的解决办法
  2. Oracle常用dump命令
  3. 面向过程和面向对象编程的优缺点
  4. 前端开发--播放页面评论区业务逻辑初步
  5. Go标准库Context
  6. 安卓中的对话框通知---简单的对话框入门
  7. oracle 性能优化 07_诊断事件
  8. 【机器学习】opencv-数据预处理
  9. RACSignal的Subscription深入分析
  10. Query UI DateRangePicker自定义面板个数
  11. python复杂代码示例_6 个例子教你重构 Python 代码
  12. 软件项目的托管平台gitHub
  13. 泰牛php第10期百度云,泰牛程序员 韩顺平 2017年 MyBatis
  14. 阵列卡u盘安装系统步骤_Dell的R720服务器使用U盘安装系统
  15. Java+MySQL实现网络爬虫程序
  16. 小米手机android程序闪退,小米手机软件闪退是什么原因
  17. python中shuffle是什么意思_python中shuffle()方法的功能详解
  18. SAP-财务-统驭科目
  19. ADC类型和技术指标
  20. 用好WinXP自带的虚拟光驱

热门文章

  1. 使用solr 检索word文档
  2. UE4、UE5凋用第三方PC程序
  3. xilinx FPGA普通IO作PLL时钟输入
  4. Zookeeper学习之源生API的使用(java与shell操作zookeeper)。
  5. 语音信号去混响原理与技术
  6. Windows复制文件提示指定的文件名无效或太长
  7. 如何让思路更清晰?simplemind for Mac思维导图来帮忙
  8. 网课频遭吐槽?数据背后隐藏这些真相
  9. JSON 格式是什么?
  10. Failed to find provider info for xxx,Unknown URL content 的问题归因和解决办法