Codeforces Round 134 (Div. 1) A. Ice Skating (并查集)
Ice Skating
题面翻译
Description
给出n个点的横纵坐标,两个点互通当且仅当两个点有相同的横坐标或纵坐标,问最少需要加几个点才能使得所有点都两两互通
Input
第一行一个整数n表示点数,之后n行每行两个整数x[ i ]和y[ i ]表示第i个点的横纵坐标(1<=n<=100,1<=x[ i ],y[ i ]<=1000)
Output
输出需要加的最少点数
题目描述
Bajtek is learning to skate on ice. He’s a beginner, so his only mode of transportation is pushing off from a snow drift to the north, east, south or west and sliding until he lands in another snow drift. He has noticed that in this way it’s impossible to get from some snow drifts to some other by any sequence of moves. He now wants to heap up some additional snow drifts, so that he can get from any snow drift to any other one. He asked you to find the minimal number of snow drifts that need to be created.
We assume that Bajtek can only heap up snow drifts at integer coordinates.
输入格式
The first line of input contains a single integer $ n $ ( $ 1<=n<=100 $ ) — the number of snow drifts. Each of the following $ n $ lines contains two integers $ x_{i} $ and $ y_{i} $ ( $ 1<=x_{i},y_{i}<=1000 $ ) — the coordinates of the $ i $ -th snow drift.
Note that the north direction coinсides with the direction of $ Oy $ axis, so the east direction coinсides with the direction of the $ Ox $ axis. All snow drift’s locations are distinct.
输出格式
Output the minimal number of snow drifts that need to be created in order for Bajtek to be able to reach any snow drift from any other one.
样例 #1
样例输入 #1
2
2 1
1 2
样例输出 #1
1
样例 #2
样例输入 #2
2
2 1
4 1
样例输出 #2
0
使用并查集求解。
首先应明确,在这道题中,想要连接任意两堆雪,只需要增加一堆雪就可以。
然后我们想在想要知道应该增加几堆雪,就只需要知道有几堆雪没有连接起来,没有连接的雪的数量减一就是需要增加的雪堆的数量。
那么只需要枚举所有的点,然后使用并查集合并上所有能够在同一个横轴或者纵轴的点,最后求解出来连通块的数量,就能够得到没有连通的数量。
CODE:
#include<bits/stdc++.h>
using namespace std;
const int N = 1010;
#define pii pair<int,int>
#define x first
#define y secondint p[N];
int n;
pii a[N];int find(int x){if(x != p[x])p[x] = find(p[x]);return p[x];
}int main(){cin >> n;for(int i = 1;i <= n;i++)cin >> a[i].x >> a[i].y;for(int i = 0;i < N;i++)p[i] = i;for(int i = 1;i <= n;i++){for(int j = i + 1;j <= n;j++){if(a[i].x == a[j].x || a[i].y == a[j].y){p[find(i)] = find(j);}}}int cnt = 0;for(int i = 1;i <= n;i++)if(p[i] == i)cnt++;cout << cnt - 1 << endl;return 0;
}
相关文章:
Codeforces Round 134 (Div. 1) A. Ice Skating (并查集)
Ice Skating 题面翻译 Description 给出n个点的横纵坐标,两个点互通当且仅当两个点有相同的横坐标或纵坐标,问最少需要加几个点才能使得所有点都两两互通 Input 第一行一个整数n表示点数,之后n行每行两个整数x[ i ]和y[ i ]表示第i个点的…...
深入了解 Flask Request
文章目录 获取请求数据获取请求信息文件上传总结 Flask 是一个轻量级的 Python Web 框架,其简洁的设计和灵活的扩展性使其成为了许多开发者的首选。在 Flask 中,处理 HTTP 请求是至关重要的,而 Flask 提供了丰富而强大的 request 对象来处理…...
前端测试策略与实践:单元测试、E2E测试与可访问性审计
前端测试策略是确保Web应用程序质量、性能和用户体验的关键组成部分。有效的测试策略通常包括单元测试、端到端(E2E)测试以及可访问性审计等多个层面。以下是关于这三类测试的策略与实践建议: 单元测试 定义与目的: 单元测试是针…...
修改el-checkbox样式
一定要在最外层; //未选中框/deep/ .el-checkbox__inner{border-color: #0862a3;}//选中框/deep/ .el-checkbox__input.is-checked .el-checkbox__inner{background-color: #0862a3;border-color: #0862a3;}//未选中框时右侧文字/deep/ .el-checkbox__label{}//选中…...
UE5缺少SDK,而无法在windows平台打包的解决方法
问题1:UE5缺少SDK,而无法在windows平台打包的解决方法(项目问题,做一下记录,没有参考性) (1)打不开:D:\imageworks-OpenColorIO-Configs-v1.0_r2-8-g0bb079c.tar 解决方案:从23拷贝D…...
4G,5G执法记录仪人脸识别、人脸比对使用说明
4G/5G执法记录仪或4G/5G智能安全帽,做前端人脸识别、人脸比对,采用了上市公司的成熟的人脸识别算法,需要支付LICENSE给算法公司,理论上前端设备支持30K的人脸库(受设备运行内存限制)。 4G/5G执法记录仪侧要…...
掌握SEO优化的关键:提升网站排名的秘籍(如何提高网站seo排名)
你是否曾经在搜索引擎上搜索过一个关键词,然后点击了排在前几位的网站?如果是,那么你已经体会到了SEO(搜索引擎优化)的威力。SEO是一项关键的网络营销策略,它能够让你的网站在搜索引擎中获得更高的排名&…...
大模型微调之 在亚马逊AWS上实战LlaMA案例(九)
大模型微调之 在亚马逊AWS上实战LlaMA案例(九) 代码阅读 src/llama_recipes/inference/prompt_format_utils.py 这段代码是一个Python模块,它定义了几个类和模板,用于生成安全评估的提示文本。以下是对每一行代码的注释和提示词…...
Php php7的特性
1. 性能优化 PHP7引入了Zend Engine 3.0,显著提高了执行效率,相比PHP 5.x,性能提升了2-3倍。这个特性无法直接通过代码示例展示,但你可以感受到在升级到PHP7后,相同代码的执行速度更快。 2. 函数返回类型声明 允许在…...
node pnpm修改默认包的存储路径
pnpm与npm的区别 PNPM和NPM是两个不同的包管理工具。 NPM(Node Package Manager)是Node.js的官方包管理工具,用于安装、发布和管理Node.js模块。NPM将包安装在项目的node_modules目录中,每个包都有自己的依赖树。 PNPM…...
Adobe-Premiere-CEP 扩展 入门-视频剪辑-去气口插件-Silence Remover
短视频,这两年比较火,不要再问为什么用Premiere,非常难用,为什么不用某影,某些国内软件非常接地气简单,又例如某音资深的视频短编辑就很好用了。。。 Premiere二次开发调试难,不如自己搞个cons…...
基于多目标灰狼算法的冷热电联供型微网低碳经济调度
针对冷热电联供型微电网运行调度的优化问题,为实现节能减排的目标,以微电网运行费用和环境污 染成本为优化目标,建立了包含风机、微型燃气轮机、余热锅炉、溴化锂吸收式制冷机等微源的微电网优化 模型。模型的优化求解使用改进的多目标灰狼优化算法,得到多目标问题的 Paret…...
Python 正则表达式 (?=...) 和 (?<=...) 符号
Python 正则表达式 引言正文示例1示例2示例3示例4 引言 今天遇到了一个比较棘手的问题,于是终于打算要对正则表达式中的 (?...) 和 (?<...) 符号动手了。 正文 (?...) 表示当 … 匹配时,匹配成功,但不消耗字符串中的任何字符。这个…...
Vue.js中使用JavaScript实现路由跳转详解
在Vue应用中,利用Vue Router进行页面间的导航是一个常见需求。本篇博客将通过示例代码详细介绍如何在Vue组件中使用JavaScript实现路由跳转,包括传递参数的两种方式:通过params和query。让我们一步步深入了解。 基础设置 首先,确…...
社群裂变:从微光到星火的社群增长奥秘
在当今社交媒体盛行的时代,社群裂变已成为众多品牌、企业和个人实现快速增长的重要策略。社群裂变不仅能够有效扩大影响力,还能精准触达目标用户,实现高效转化。本文将深入探讨社群裂变的内涵、策略及实施方法,助您揭开社群增长的…...
Git命令Gitee注册idea操作git超详细
文章目录 概述相关概念下载和安装常见命令远程仓库介绍与码云注册创建介绍码云注册远程仓库操作关联拉取推送克隆 在idea中使用git集成add和commit差异化比较&查看提交记录版本回退及撤销与远程仓库关联 push从远程仓库上拉取,克隆项目到本地创建分支切换分支将…...
出差行程到底怎么管?这个“高分指南”划重点来了!
在日常商旅过程中,出差行程计划是必不可少的环节。公司需要以此为依据判断行程是否有必要、是否合理,确保出差行程与公司的业务需求相符。 通过胜意费控云,员工填写出差申请时,行程计划智能生成,平台自动匹配并带出差标…...
js设计模式--发布订阅者模式
概述 发布订阅者模式用于处理对象之间的事件通信,该模式涉及两个主要角色:发布者(Publisher)和订阅者(Subscriber) 发布者维护一个事件列表,并在事件发生时通知所有已注册的订阅者。订阅者可以…...
【图论】图论基础
图论不同地方讲的不太一样,本文仅限作者的理解 定义 图一般由点集 V V V 和边集 E E E 组成。 对于 v ∈ V v\in V v∈V,称 v v v 为该图的一个节点。 对于 e ∈ E e\in E e∈E,一般用二元组 ( u , v ) (u,v) (u,v) 表示 e e e&…...
Konga域名配置多个路由
云原生API网关-Kong部署与konga基本使用 Nginx server{listen 443 ssl;location / {proxy_pass http://127.0.0.1:8100;}location /openApi {proxy_pass http://172.31.233.35:7100/openApi;} } Kong {"id": "f880b21c-f7e0-43d7-a2a9-221fe86d9231&q…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
从面试角度回答Android中ContentProvider启动原理
Android中ContentProvider原理的面试角度解析,分为已启动和未启动两种场景: 一、ContentProvider已启动的情况 1. 核心流程 触发条件:当其他组件(如Activity、Service)通过ContentR…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...
