当前位置: 首页 > news >正文

1144. 连接格点,Kruskal算法,二维矩阵压缩为一维

有一个 m 行 n 列的点阵,相邻两点可以相连。

一条纵向的连线花费一个单位,一条横向的连线花费两个单位。

某些点之间已经有连线了,试问至少还需要花费多少个单位才能使所有的点全部连通。

输入格式

第一行输入两个正整数 m 和 n。

以下若干行每行四个正整数 x1,y1,x2,y2,表示第 x1 行第 y1 列的点和第 x2 行第 y2 列的点已经有连线。

输入保证|x1−x2|+|y1−y2|=1。

输出格式

输出使得连通所有点还需要的最小花费。

数据范围

1≤m,n≤1000
0≤已经存在的连线数≤10000

输入样例:
2 2
1 1 2 1
输出样例:
3

 解析:AcWing 1144. 连接格点(算法提高课) - AcWing

 

#include<iostream>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<math.h>
#include<map>using namespace std;
typedef long long LL;
const int N = 1e3+10, M = 2 * N * N;
int n, m,k;int fa[N * N],idx[N][N];
struct st {int a, b, c;
}e[M];int find(int a) {if (fa[a] == a)return fa[a];return fa[a] = find(fa[a]);
}void get() {int dx[4] = { 1,0,-1,0 }, dy[4] = { 0,1,0,-1 }, dw[4] = { 1,2,1,2 };for (int z = 0; z < 2; z++) {for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {for (int u = 0; u < 4; u++) {if (u % 2 == z) {int x = i + dx[u], y = j + dy[u], w = dw[u];if (x && x <= n && y && y <= m) {int a = idx[i][j], b = idx[x][y];if (a < b)e[++k] = { a,b,w };}}}}}}
}int main() {cin >> n >> m;for (int i = 1,t=1; i <= n; i++) {for (int j = 1; j <= m; j++,t++) {idx[i][j] = t;}}for (int i = 1; i <= n * m; i++)fa[i] = i;int x1, y, x2, y2;while (cin >> x1 >> y >> x2 >> y2) {fa[find(idx[x1][y])] = find(idx[x2][y2]);}get();int ans = 0;for (int i = 1; i <= k; i++) {int a = find(e[i].a), b = find(e[i].b), w = e[i].c;if (a != b) {fa[a] = b;ans += w;}}cout << ans << endl;return 0;
}

相关文章:

1144. 连接格点,Kruskal算法,二维矩阵压缩为一维

有一个 m 行 n 列的点阵&#xff0c;相邻两点可以相连。 一条纵向的连线花费一个单位&#xff0c;一条横向的连线花费两个单位。 某些点之间已经有连线了&#xff0c;试问至少还需要花费多少个单位才能使所有的点全部连通。 输入格式 第一行输入两个正整数 m 和 n。 以下若…...

C++ : 友元(未完结)

不能从外部访问类的私有数据成员和方法&#xff0c;但这条规则不适用于友元类和友元函数。要声明友元 类或友元函数&#xff0c;可使用关键字 friend&#xff0c;通过让函数成为类的友元&#xff0c;可以赋予该函数与类的成员函数 同的访问权限。 生活中你的家有客厅 (Public)…...

Nginx 服务器 SSL 证书安装部署

操作场景 本文档以证书名称 menglinfeng.top 为例。 Nginx 版本以 nginx/1.18.0 为例。 当前服务器的操作系统为 CentOS 7&#xff0c;由于操作系统的版本不同&#xff0c;详细操作步骤略有区别。 安装 SSL 证书前&#xff0c;请您在 Nginx 服务器上开启 “443” 端口&#xf…...

GC9118S低压 5V 全桥驱动芯片,内置过温保护,低电流睡眠模式,可替代TMI8118

GC9118S 是一款低压 5V 全桥驱动芯 片&#xff0c;为摄像机、消费类产品、玩具和其他低 压或者电池供电的运动控制类应用提供了集 成的电机驱动解决方案。 GC9118S 能提供高达 1.1A 的持续输出 电流。可以工作在 2~6V 的电源电压上。 GC9118S 具有 PWM &#xff08; IN/…...

windows dockerdesktop 安装sqlserver2022

1.下载windows dockertop软件 下载连接 2.安装完成配置&#xff0c;下载源地址 {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-mirrors": …...

在ubuntu系统安装SVN服务端,并通过客户端进行远程访问

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…...

STL函数对象-C++

1. 函数对象 1.1 函数对象概念 概念&#xff1a; 重载函数调用操作符的类&#xff0c;其对象常称为函数对象函数对象使用重载的 () 时&#xff0c;行为类似函数调用&#xff0c;也叫仿函数 本质&#xff1a; 函数对象&#xff08;仿函数&#xff09;是一个类&#xff0c;不…...

Ubuntu 设置Nginx开机自启

1.建立自启动服务文件 vim /usr/lib/systemd/system/nginx.service Descriptionnginx - high performance web server Afternetwork.target remote-fs.target nss-lookup.target [Service] Typeforking ExecStart/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx…...

npm中的npx命令

1.概念 npx是一个执行npm软件包的二进制文件&#xff0c;通俗的讲&#xff0c;他可以执行npm的一些指令。 2.示例 用babel将ES6语法转为ES5语法 npx babel src/js -d dist/js会执行babel的相关功能&#xff0c;如果没有安装&#xff0c;也会自动安装。 当在执行npx <co…...

python绘制Z形图 青少年电子学会等级考试 中小学生python编程等级考试一级真题答案解析2023年5月

目录 python绘制Z形图 一、题目要求 二、算法分析 三、程序代码...

conda环境下module ‘PIL.Image‘ has no attribute ‘ANTIALIAS‘

1 问题描述 在训练语音模型时&#xff0c;出现如下错误&#xff1a; Traceback (most recent call last):File "/opt/Bert-VITS2-2.0.2.1/train_ms.py", line 660, in <module>run()File "/opt/Bert-VITS2-2.0.2.1/train_ms.py", line 282, in run…...

蓝桥杯每日一题2023.11.26

题目描述 奖券数目 - 蓝桥云课 (lanqiao.cn) 将每一个数字进行一一枚举&#xff0c;如果检查时不带有数字4则答案可以加1 #include<bits/stdc.h> using namespace std; int ans; bool check(int n) {while(n){if(n % 10 4)return false;n / 10; }return true; } int m…...

Centos 7.9 Install Docker Insecure Registry

文章目录 1. 镜像存储规划2. 安装定制 docker3. 部署 registry4. 验证镜像仓库 1. 镜像存储规划 linux LVM /dev/sdb mount dir /data【linux LVM 磁盘挂载目录】 创建两个目录 一个 docker 数据存储目录 &#xff1a;/data/docker&#xff0c;默认一般为linux为 /var/lib/d…...

探秘网络通信:UDP与TCP/IP的奥秘

**> &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 探秘网络通信&#xff1a;UDP与TCP/IP的奥秘 前言第一&#xff1a;UDP基础概念UDP的基础概念&#xff1a;UDP的特点和优势UDP与TCP/IP的关系 工作原理1. 无连接性和面…...

Docker的学习笔记

1.1 docker的介绍 1.2 docker的一次安装 //如果是root用户&#xff0c;不加sudo也行curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -echo deb https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/ buster stable…...

解析直播第三方美颜SDK:技术原理与应用

时下&#xff0c;直播平台和主播们纷纷引入美颜技术&#xff0c;以提升视觉效果和用户体验。而在众多美颜技术中&#xff0c;直播第三方美颜SDK成为许多开发者和平台的首选&#xff0c;因其灵活性和高效性而备受推崇。 一、技术原理&#xff1a;美颜算法的精髓 第三方美颜SDK…...

线程基本方法

1。设置线程名 继承Thread类的线程&#xff0c;可以直接使用.setName()方法&#xff0c;设置线程名。也可以使用构造方法&#xff0c;需要注意java默认不继承构造方法&#xff0c;所以需要自己调用下父类的构造方法。 public class Demo {public static void main(String[…...

Linux操作系统 1.初识Linux

一、Linux学习大致内容 二、操作系统概述 操作系统的作用&#xff1a; 常见操作系统&#xff1a; 1、pc&#xff08;电脑端&#xff09;&#xff1a;windows、Linux、MacOS 2、移动端&#xff1a;Android、ios、鸿蒙系统 总结 1.计算机由哪两个部分组成&#xff1f;、 硬件…...

分布式事务-两阶段提交2PC

2PC协议就是两阶段提交&#xff0c;用来解决分布式事务&#xff0c;分为两个阶段&#xff0c;分别为Prepare和Commit&#xff0c;也是PC由来。 第一阶段Prepare 提交事务请求 如图所示&#xff0c;主要流程有以下三个方面 询问&#xff1a;事务协调者(Manager)向所有的事务参与…...

初识Spring (Spring 核心与设计思想)

文章目录 什么是 Spring什么是容器什么是 IoC理解 Spring IoCDI 概念 什么是 Spring Spring 官网 官方是这样说的: Spring 让每个人都能更快、更轻松、更安全地进行 Java 编程。春天的 专注于速度、简单性和生产力使其成为全球最受欢迎Java 框架。 我们通常所说的 Spring 指的…...

Wan2.2-I2V-A14B实际作品分享:电商广告/短视频/教学素材生成案例

Wan2.2-I2V-A14B实际作品分享&#xff1a;电商广告/短视频/教学素材生成案例 1. 开篇&#xff1a;认识Wan2.2-I2V-A14B视频生成能力 Wan2.2-I2V-A14B是一款强大的文生视频模型&#xff0c;能够根据文字描述生成高质量的视频内容。经过私有部署镜像的深度优化&#xff0c;这款…...

Qwen3.5-9B-AWQ-4bit生产环境落地:CSDN GPU平台一键部署与服务管理手册

Qwen3.5-9B-AWQ-4bit生产环境落地&#xff1a;CSDN GPU平台一键部署与服务管理手册 1. 平台与模型介绍 Qwen3.5-9B-AWQ-4bit是一个支持图像理解的多模态模型&#xff0c;能够结合上传图片与文字提示词&#xff0c;输出中文分析结果。这个量化版本特别适合在生产环境中部署&am…...

同事在字节干了 6 年,攒了不少钱但身体垮了。体检查出一堆毛病,医生说得休息。请了一个月假,以前觉得赚钱重要,现在觉得活着重要!

最近刷到一个扎心帖子&#xff1a;贴主的前同事在字节干了 6 年&#xff0c;攒下了不少钱&#xff0c;却也熬垮了身体。一次体检查出一堆问题&#xff0c;医生直接下了“必须休息”的最后通牒。他请了一个月长假&#xff0c;在医院躺了几天后彻底想通了&#xff1a;以前觉得赚钱…...

线性时不变系统的容错模型预测控制与同态加密融合研究 —— 以连续搅拌式反应器为例(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

搬运机器人结构设计【机电plc】【cad图纸和设计说明书】

搬运机器人作为自动化物流系统的核心设备&#xff0c;其结构设计需兼顾机械强度、运动精度与电气控制协同性。机械部分以框架、驱动模块、末端执行器为核心&#xff0c;采用高强度铝合金或碳钢材料构建主体框架&#xff0c;确保承载能力的同时控制整体重量。驱动模块通常集成步…...

2026年药学论文降AI工具推荐:药理研究和临床试验部分怎么处理

2026年药学论文降AI工具推荐&#xff1a;药理研究和临床试验部分怎么处理 同学群里有人问药学论文降AI工具推荐&#xff0c;我发现自己每次回答都差不多——嘎嘎降AI。干脆写一篇详细的推荐文章&#xff0c;省得每次重复。 直接结论&#xff1a;嘎嘎降AI&#xff08;www.aigc…...

从HydroSHEDS到USGS:一站式获取与ArcGIS处理全球及美国流域边界

1. 全球流域数据源&#xff1a;HydroSHEDS与HydroBASINS详解 搞水文研究的朋友们都知道&#xff0c;获取准确的流域边界数据是开展工作的第一步。HydroSHEDS&#xff08;Hydrological data and maps based on SHuttle Elevation Derivatives at multiple Scales&#xff09;是目…...

OpenClaw的5个国内实用Skill:助力高效办公的智能引擎

在AI智能体日益普及的2026年&#xff0c;OpenClaw作为国内领先的AI执行框架&#xff0c;其核心价值不仅在于底层技术&#xff0c;更在于其丰富的技能生态。尤其在中文办公场景中&#xff0c;经过本土化优化的技能已成为提升效率的关键。本文将当前国内最实用的5个OpenClaw技能&…...

AWS容器扩展性终极指南:如何构建可伸缩的容器化应用

AWS容器扩展性终极指南&#xff1a;如何构建可伸缩的容器化应用 【免费下载链接】containers-roadmap This is the public roadmap for AWS container services (ECS, ECR, Fargate, and EKS). 项目地址: https://gitcode.com/gh_mirrors/co/containers-roadmap 在当今…...

模型评估体系架构解析

模型评估是量化系统表现的核心基准。本架构基于分类树结构&#xff0c;将系统切分为传统机器学习范式&#xff08;ML Models&#xff09;与检索增强生成代理&#xff08;RAG Agent&#xff09;两大赛道&#xff0c;并向下延展至具体的评估算子。 1. ML Models (传统机器学习模型…...