洛谷-U132410-最小代价(最小生成树(森林)+ 虚拟点)

2023-05-16

题目描述:点击进入

思路

最小生成树的变形
我们虚拟一个 “零” 结点,这个结点跟每个村庄 i 连边,权值分别为在村庄 i 建立一个网络中心的花费。然后其他边都正常连,最后求最小生成树即可。

代码

#include<iostream>
#include<cstdio>
#include<vector>
#include<cmath>
#include<cstring>
#include<algorithm>
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
const int maxn=1e4+10;
const int N=1e7+10;
int pre[maxn],n;
struct node
{
	int x;
	int y;
	int c;
	ll k;
}p[maxn];
struct Node
{
	int x;
	int y;
	ll k;
}s[N];
int find(int x)
{
	if(x==pre[x]) return x;
	else return pre[x]=find(pre[x]); 
} 
bool unions(int x,int y)
{
	int fx=find(x);
	int fy=find(y);
	if(fx!=fy)
	{
		pre[fy]=fx;
		return 0;
	}
	else return 1;
} 
ll look(int i,int j)
{
	ll dis=abs(p[i].x-p[j].x)+abs(p[i].y-p[j].y);
	return dis*(p[i].k+p[j].k);
}
bool cmp(Node e,Node f)
{
	return e.k<f.k;
}
int main()
{
	//ios::sync_with_stdio(false);
	while(~scanf("%d",&n))
	{
		int cnt=0;
		for(int i=0;i<=n;i++) pre[i]=i;
		for(int i=1;i<=n;i++) scanf("%d%d",&p[i].x,&p[i].y);
		for(int i=1;i<=n;i++)
		{
			scanf("%d",&p[i].c);
			s[++cnt].x=0;
		    s[cnt].y=i;
		    s[cnt].k=p[i].c;
		}
		for(int i=1;i<=n;i++) scanf("%d",&p[i].k);
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<i;j++)
			{
			    s[++cnt].x=i;
		    	s[cnt].y=j;
		    	s[cnt].k=look(i,j);
	 	    }
		}
		sort(s+1,s+cnt+1,cmp);
		ll ans=0;
		for(int i=1;i<=cnt;i++)
		{
			if(!unions(s[i].x,s[i].y))
				ans+=s[i].k;
		}
		printf("%lld\n",ans);
	}
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

洛谷-U132410-最小代价(最小生成树(森林)+ 虚拟点) 的相关文章

  • 洛谷——P3366 【模板】最小生成树

    题目描述 如题 xff0c 给出一个无向图 xff0c 求出最小生成树 xff0c 如果该图不连通 xff0c 则输出orz 输入格式 xff1a 第一行包含两个整数N M xff0c 表示该图共有N个结点和M条无向边 xff08 N lt
  • 最小生成树 Kruskal算法 Prim算法 洛谷P3366

    最小生成树 Kruskal算法 Prim算法 洛谷P3366 相较于Prim算法 xff0c 我觉得Kruskal算法更优 xff08 因为一般情况 xff0c 题目给你的边数都是正常的 xff0c Kruskal算法的时间复杂度为O El
  • 洛谷 P3366 【模板】最小生成树

    洛谷 P3366 模板 最小生成树 题目 给出一个无向图 xff0c 求出最小生成树 xff0c 如果该图不连通 xff0c 则输出orz 题目链接 模板 最小生成树 洛谷 输入 第一行包含两个整数N M xff0c 表示该图共有N个结点和
  • 最小生成树 prim算法(附代码)

    prim算法是以一个根节点开始慢慢往下延伸 xff0c 不断寻找距生成树最短的距离的节点 xff0c 然后将该节点纳入生成树的集合中 xff0c 然后再将该节点影响的其他未纳入生成树节点的距离更新 xff08 缩小与生成树的距离 xff09
  • 最小生成树+思维 扩散(洛谷 P1661)

    扩散 题目描述 一个点每过一个单位时间就会向四个方向扩散一个距离 xff0c 如图 图略 两个点a b连通 xff0c 记作e a b 当且仅当a b的扩散区域有公共部分 连通块的定义是块内的任意两个点u v都必定存在路径e u a0 e
  • 洛谷 P3366 【模板】最小生成树 (题解+代码)

    题目传送门 xff1a https www luogu com cn problem P3366 题解 xff1a 利用Kruskal算法求解 xff0c 这里大致说下Kruskal算法 对于一个点数为n的生成树而言 很显然 xff0c 想
  • 洛谷P3366 【模板】最小生成树.Prim算法

    题目 xff1a https www luogu com cn problem P3366 普利姆算法 xff1a 每次选 与已选的点相连的 最小边 循环n 1次 C语言 xff1a include lt stdio h gt includ
  • LOJ #10066. 「一本通 3.1 练习 1」新的开始(最小生成树 虚拟节点)

    题目链接 题目描述 发展采矿业当然首先得有矿井 xff0c 小 FF 花了上次探险获得的千分之一的财富请人在岛上挖了 n口矿井 xff0c 但他似乎忘记考虑的矿井供电问题 为了保证电力的供应 xff0c 小 FF 想到了两种办法 xff1a
  • 洛谷-U132410-最小代价(最小生成树(森林)+ 虚拟点)

    题目描述 xff1a 点击进入 思路 最小生成树的变形 我们虚拟一个 零 结点 xff0c 这个结点跟每个村庄 i 连边 xff0c 权值分别为在村庄 i 建立一个网络中心的花费 然后其他边都正常连 xff0c 最后求最小生成树即可 代码
  • P3366 【模板】最小生成树 java prim算法 洛谷

    传送门 P3366 模板 最小生成树 洛谷 计算机科学教育新生态 luogu com cn https www luogu com cn problem P3366 这道题有两种常规做法 xff0c kruskal 对边进行研究 和 pri
  • 洛谷 P3366 【模板】最小生成树

    题目描述 如题 xff0c 给出一个无向图 xff0c 求出最小生成树 xff0c 如果该图不连通 xff0c 则输出orz 输入输出格式 输入格式 xff1a 第一行包含两个整数N M xff0c 表示该图共有N个结点和M条无向边 xff
  • 数据结构:最小生成树--Prim算法

    最小生成树 Prim算法 最小生成树 给定一无向带权图 顶点数是n 要使图连通只需n 1条边 若这n 1条边的权值和最小 则称有这n个顶点和n 1条边构成了图的最小生成树 minimum cost spanning tree Prim算法
  • P1195 口袋的天空(Kruskal&&并查集&&最小连通块个数)

    口袋的天空 洛谷 解析 这题同 1487北极通讯网络 Kruskal 一样 都是求最小连通块的代价 跑一边Kruskal 然后统计连通块 1487北极通讯网络 Kruskal 陈进士学习的博客 CSDN博客 include
  • 最小生成树之普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法

    作者 STzen 链接 https www jianshu com p 683ffde4f3a3 来源 简书 最小生成树 列子引入 如图假设v0到v8表示9个村庄 现在需要在这9个村庄假设通信网络 村庄之间的数字代表村庄之间的直线距离 求用
  • 【算法学习笔记】24:Prim算法与Kruskal算法(最小生成树)

    Prim算法和Dijkstra算法很相似 而且也按照是不是稀疏图分成了两种 对于稠密图 用朴素版的Prim算法 时间复杂度 O n 2 O n 2
  • POJ1785

    prim算法求最小生成树 1 输入 一个加权连通图 其中顶点集合为V 边集合为E 2 初始化 V new x 其中x为集合V中的任一节点 起始点 E new 为空 3 重复下列操作 直到V new V a 在集合E中选取权值最小的边
  • 最小生成树笔记(Prim算法&&Kruskal算法)

    1 最小生成树 最小生成树 Minimum Spanning Tree 简称MST 是指 在一个连通无向图中 找到一个包含所有顶点的树 且该树的所有边的权重之和最小 换句话说 最小生成树是原图中的一个子图 它包含所有顶点 并且连接所有顶点的
  • tree【WQS二分+MST】

    题目链接 洛谷 精确涉及到了WQS二分 BZOJ 2654 不推荐 个人不推荐做BZOJ2654的这道题 因为那道题可以水过去 不用WQS二分也是可以的 可以直接二分答案 显然是没有这个好的 先在这里讲一下什么是WQS二分吧 也是从网上看来
  • 数据结构——普里姆(Prim)算法

    普里姆算法 Prim算法 图论中的一种算法 可在加权连通图里搜索最小生成树 意即由此算法搜索到的边子集所构成的树中 不但包括了连通图里的所有顶点 且其所有边的权值之和亦为最小 以下是数据结构中关于普里姆算法的操作 编程风格参考严蔚敏版数据结
  • prim算法解决最小生成树问题

    刚好这次又遇到了prim算法 就做了下整理 可以参考 数据结构与算法分析c 描述 这本书 个人而言 很经典 并把以前写的代码也整理了一下 做下分享 同时也加深下自己的理解 prim算法是解决最小生成树问题的一个很好的算法 此算法是是将点集合

随机推荐

  • 重磅系列文章|UI2Code智能生成Flutter代码--整体设计篇 ...

    闲鱼技术 上叶 背景 随着移动互联网时代的到来 xff0c 人类的科学技术突飞猛进 然而软件工程师们依旧需要花费大量精力在重复的还原UI视觉稿的工作 UI视觉研发拥有明显的特征 xff1a 组件 xff0c 位置和布局 xff0c 符合机器
  • linux debian系统卸载jdk,Debian/Ubuntu系统 JDK卸载、安装、环境配置

    环境 xff1a Linux内核版本4 17 Oracle jdk 11 0 2 JDK 8同样也是设置 Debian9系统 注意 xff1a 1 Open JDK和Oracle JDK的安装过程只是下载的连链接不一样 2 有的Linux系
  • MySQL 8.0 Windows zip 安装过程

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 准备 xff1a MySQL8 0 Windows zip包下载地址 xff1a https cdn mysql com Downloads MySQL 8 0 mysql
  • nohup后台执行脚本并输入日志到指定目录 &

    后台执行命令 xff0c 并输出目录到指定目录 root 64 localhost smgpSend Log nohup tar zcvf sendThread bak tar sendThread bak gt gt 1 txt amp
  • 在 Laravel 5 中集成七牛云存储实现云存储功能

    本扩展包基于https github com qiniu php sdk 开发 xff0c 是七牛云储存 Laravel 5 Storage版 xff0c 通过本扩展包可以在Laravel 5中集成七牛云存储功能 1 安装配置 使用之前 x
  • BSS段、数据段、代码段、堆与栈

    BSS段 xff1a BSS段 xff08 bss segment xff09 通常是指用来存放程序中未初始化的全局变量的一块内存区域 BSS是英文Block Started by Symbol的简称 BSS段属于静态内存分配 数据段 xf
  • Java字符串排序中文+数字

    编写日期 xff1a 2013年9月15日 另一中解法 xff1a 点击查看 解决思路 xff1a 在Java中 xff0c 排序需要复写的是 equals 方法 和 Comparable lt T gt 接口 的public int co
  • UIView 中常见的方法总结

    addSubview 添加一个子视图到接收者并让它在最上面显示出来 void addSubview UIView view 讨论 这方法同样设置了接收者为下一个视图响应对象 接收者保留视图 如果你使用removeFromSuperview方
  • docker方式部署gitlab

    docker方式部署gitlab 说明 操作系统 CentOS Linux release 7 9 2009 Core docker版本 20 10 17主机ip地址 172 16 100 107gitlab cn官网安装教程 https
  • iOS libc++abi.dylib: handler threw exception 错误的解决方案

    简单说下背景 xff1a 最近把工具和SDK都进行了升级Xcode4 5和iOS6 xff0c 无意之中测出了一个 必现的bug xff1a libc 43 43 abi dylib handler threw exception libc
  • 后羿射日般的精准 - 阿里云ECS调度是如何炼成的

    1 引子 弹性计算服务ECS xff08 Elastic Compute Service xff09 是阿里云营收的中流砥柱和流量担当 作为各行业客户新业务和技术创新的发动机和使能者 xff0c ECS不仅能在10分钟内交付出一个中等体量互
  • java每日小算法(12)

    程序12 题目 xff1a 企业发放的奖金根据利润提成 利润 I 低于或等于10万元时 xff0c 奖金可提10 xff1b 利润高于10万元 xff0c 低于20万元时 xff0c 低于10万元的部分按10 提成 xff0c 高于10万元
  • strong_alias && weak_alias && __attribute__

    为了查看linux下malloc的实现函数 xff0c 下载了Glibc的源码文件 xff0c 可是找不到实现的函数在哪里 看文件名 应该是在malloc malloc c里面 发现 libc malloc的实现比较像 怎么从malloc到
  • glog

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 一 安装配置 1 简介 google 出的一个C 43 43 轻量级日志库 xff0c 支持以下功能 xff1a 参数设置 xff0c 以命令行参数的方式设置标志参数来控制
  • mysql 引擎 校对_mysql字符集与校对集详解

    1 字符集 character 设置数据存储编码格式 1 utf8 2 utf8mb4 支持Emoji 表情 Emoji 是一种特殊的 Unicode 编码 xff0c 常见于 ios 和 android 手机上 2 校对集 collate
  • BSS段和数据段

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 内存分段 xff08 英语 xff1a Memory segmentation xff09 xff0c 一种电脑内存的管理技术 xff0c 它将电脑的主内存分成许多区段 x
  • Zabbix各种报错信息和遇到的问题(持续更新)

    1 Zabbix报警 icmp pinger processes more than 75 busy root 64 localhost zabbix vi etc zabbix zabbix server conf 将这个值设置成Star
  • 自动化运维之 Kerberos 账号信息管理平台

    公司的自动化项目之一 公司的服务器超多 xff0c 需要一个用来管理服务器权限的系统 主要是实现 用一个账号 xff0c 可以让你登录所有的服务器 xff0c 也可以让你身无无分文 就是这样的一个操作的平台 5 25 数据库的展现已经做完
  • 分享一个 ftp下载、解压、更新依赖库文件的 python 脚本

    2019独角兽企业重金招聘Python工程师标准 gt gt gt code usr bin env python coding utf8 ftp下载 解压 更新依赖库文件 import os sys stat shutil string
  • 洛谷-U132410-最小代价(最小生成树(森林)+ 虚拟点)

    题目描述 xff1a 点击进入 思路 最小生成树的变形 我们虚拟一个 零 结点 xff0c 这个结点跟每个村庄 i 连边 xff0c 权值分别为在村庄 i 建立一个网络中心的花费 然后其他边都正常连 xff0c 最后求最小生成树即可 代码