题目大意

要建设一个村庄的网络

有两种操作可选

1、给中国移动交宽带费,直接连网,花费为 A。
2、向另外一座有网的建筑,安装共享网线,花费为 B×两者曼哈顿距离。
题解
显然的最小生成树的题
见一个虚拟源点,将每个点和那个虚拟源点连一个边权为A的边
其余每个点之间连边,边权即为曼哈顿距离*B
于是自信的以为曼哈顿距离就是两点之间的距离的我,怎么都过不了大样例,于是快乐gg,快乐崩溃...

#include<bits/stdc++.h>
#define ll long long
#define db double
using namespace std;inline int read()
{int sum = 0,p = 1;char ch = getchar();while(ch < '0' || ch > '9'){if(ch == '-')p = -1;ch = getchar();}while(ch >= '0' && ch <= '9'){(sum *= 10) += ch - '0';ch = getchar();}return sum * p;
}const int N = 1e3 + 5;
int n,A,B;
struct node
{int x,y;
} pot[N];
int cnt,fa[N],tot;
struct edge
{int frm,to;ll wei;
} e[N * N /2 + N];
ll ans;void add(int a,int b,ll c)
{e[++cnt].frm = a;e[cnt].to = b;e[cnt].wei = c;
}bool cmp(edge a,edge b)
{return a.wei < b.wei;
}int findfa(int x)
{if(fa[x] == x)return x;elsereturn fa[x] = findfa(fa[x]);
}void kruskal()
{sort(e+1,e+cnt+1,cmp);for(int i = 0;i <= n;i++)fa[i] = i;for(int i = 1;i <= cnt;i++){int u = findfa(e[i].frm);int v = findfa(e[i].to);if(u == v)continue;fa[v] = u;tot++;ans += e[i].wei;if(tot == n)return;}
}int main()
{freopen("pupil.in","r",stdin);freopen("pupil.out","w",stdout);n = read(),A = read(),B = read();for(int i = 1; i <= n; i++){pot[i].x = read();pot[i].y = read();}for(int i = 1; i <= n; i++)for(int j = i + 1; j <= n; j++){ll xx= abs(pot[i].x - pot[j].x);ll yy= abs(pot[i].y - pot[j].y);;add(i,j,(xx + yy) * B);//    add(j,i,len * B);
        }for(int i = 1;i <= n;i++){add(0,i,A);//    add(i,0,A);
    }kruskal();printf("%lld\n",ans);return 0;
}
//不知道曼哈顿距离可还行

View Code

转载于:https://www.cnblogs.com/darlingroot/p/11351466.html

8.14-T1村通网(pupil)相关推荐

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

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

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

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

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

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

  4. 【JZOJ5353】村通网

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

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

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

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

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

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

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

  8. JZOJ 5353. 村通网

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

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

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

最新文章

  1. javascript添加HTML事件处理程序的两种方式学习
  2. OpenStack之Keystone模块
  3. 学长毕业日记 :本科毕业论文写成博士论文的神操作20170407
  4. 数据去重复_字典应用实例(每行每列都要去重复值)
  5. Java位操作:如何将long类型的指定位设置为0或1?How to set/unset a bit at specific position of a long?
  6. java面试题40 当编译并运行下面程序时会发生什么结果()
  7. MongoDB数据库因安全漏洞,导致Family Locator泄露二十多万名用户数据
  8. 电脑安装linux后打不开win,安装完linux后 windows无法启动
  9. asp.net ajax客户端框架如何调用Page Method
  10. Spring Boot使用JSP模板引擎
  11. java计算机毕业设计快滴预约平台MyBatis+系统+LW文档+源码+调试部署
  12. 六、配置基于 IP 子网划分 VLAN 示例
  13. 一位销售的几年职业总结
  14. C语言根据国家英文首字母进行排序
  15. ios 关于MBProgressHUD简单实用
  16. matlab开方分布上分位点,概率密度分布函数和上分位点的数值计算
  17. MindSpore实现手写数字识别
  18. 所有计算机专业的学生应该认识到的
  19. AFNetworking缓存
  20. iOS 浏览相册功能实现 —— HERO博客

热门文章

  1. 数据结构与算法(刺猬书)读书笔记(1)----数组
  2. 物联网市场FD-SOI制程会取代FinFET吗?
  3. Segment Routing基础知识
  4. 机器学习-搭建环境-1:Win10安装Anaconda和Jupyter Notebook
  5. java将长网址转换为短网址 用第三方接口 常用于生成二维码时需要
  6. 博学谷-数据分析matplotlib
  7. java httpclient 采集_使用java HttpClient 与Web服务器交互 - elliott - 博客园
  8. 新媒体运营教程:了解短视频核心,让短视频运营脱颖而出
  9. MVG与MVS的区别和联系
  10. 黑马服务器开发之linux基础编程视频——笔记