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;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10254.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10254.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10254.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于Windows驅動中DPC同步的一些見解說明

DPC會被分配到不停的CPU核心上,如果分配到同一個核心,那么DPC是串行的,如果分配到不同的CPU核心上,那么DPC是并行的,但如果設置WDF_OBJECT_ATTRIBUTES的SynchronizationScope屬性為WdfSynchronizationScopeDevice,那么即便CPU有多核,DPC也不會在不同的核心上并發,因為系…

零基礎HTML教程(32)--HTML5語義化標簽

文章目錄 1. div時代2. div的缺點3. 語義化標簽4. 語義化標簽有哪些5. 實戰演練6. 小結 1. div時代 我是2009年開始學習網頁開發的&#xff0c;那時候HTML里面到處是div。 這么說吧&#xff0c;那時候div就是網頁的骨架&#xff0c;支撐著網頁的主結構。 2. div的缺點 div作…

使用J-Link Commander / JFlash 燒寫固件程序(以STM32F103C8T6為例)

使用JFlash 燒寫流程 運行JFlash, 點擊Project Settings 配置Jlink為SWD方式,選擇連接設備為STM32F103C8T6, 點擊確定. 選擇要燒錄的Bin文件 設置bin文件燒錄地址, 點擊OK(地址要在0x08000000-0x0800FFFF范圍內) Note : STM32F103C8T6 Flash大小為 64KB&#xff0c; 地址范圍…

速盾可以防御的攻擊類型是否會隨著技術的發展而不斷變化?

隨著技術的發展&#xff0c;網絡攻擊的形式也在不斷演變。因此&#xff0c;速盾作為一種網絡安全防護技術&#xff0c;也需要不斷更新和改進&#xff0c;以應對新的攻擊類型。本文將從技術發展的角度探討速盾如何應對不斷變化的攻擊類型。 首先&#xff0c;隨著技術的進步&…

Vuex,在 Vue 組件中監聽 Vuex 狀態變化,使用watch監聽Vuex中的數據

簡介&#xff1a;在Vue應用程序中使用Vuex進行狀態管理時&#xff0c;經常需要在組件中響應狀態的變化。這里來記錄一下 一. 在使用 Vuex 進行狀態管理時&#xff0c;我們經常需要在組件中響應狀態的變化。Vue 提供了兩種方式來實現這一點&#xff1a;computed 屬性和 watch 選…

重生奇跡mu再生寶石怎么用有什么用

重生奇跡mu再生寶石有2個用處&#xff1a; 1、在瑪雅哥布林處給380裝備加PVP屬性4追4以上的380級裝備,守護寶石一顆,再生寶石一顆,成功得到PVP裝備,失敗寶石消失,裝備無變化&#xff1b; 2、給非套裝點強化屬性用法跟祝福,靈魂,生命一樣直接往裝備上敲,成功得到隨機強化屬性一…

八. Django項目之電商購物商城 -- 添加郵箱

Django項目之電商購物商城 – 添加郵箱 一. 用戶中心 添加郵箱功能在用戶中心中 , 先完善用戶中心功能 1. 視圖 # 用戶中心 class UserInfoCenterView(LoginRequiredMixin,View):def get(self , request):context {username : request.user.username,mobile : request.use…

隊列的實現以及隊列如何實現棧

一、隊列的定義 隊列&#xff1a;只允許在一端進行插入數據操作&#xff0c;在另一端進行刪除數據操作的特殊線性表&#xff0c;隊列具有先進先出 FIFO(First In First Out) 入隊列&#xff1a;進行插入操作的一端稱為 隊尾 出隊列&#xff1a;進行刪除操作的一端稱為 隊頭 …

20240507 ubuntu20.04+ros noetic 跑通lioslam

任務&#xff1a;跑通lioslam 主要參考博客 IMU激光雷達融合使用LIO-SAM建圖學習筆記——詳細、長文、多圖、全流程_ubuntu_AIDE回歸線-GitCode 開源社區 (csdn.net) 1.不要用這一句 wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.0-alpha2…

【Spring】初識 Spring AOP(面向切面編程)

目錄 1、介紹AOP 1.1、AOP的定義 1.2、AOP的作用 1.3、AOP的核心概念及術語 2、AOP實現示例 3、EnableAspectJAutoProxy注解 1、介紹AOP 1.1、AOP的定義 AOP&#xff08;Aspect Orient Programming&#xff09;&#xff0c;直譯過來就是面向切面編程&#xff0c;AOP 是一…

Windows Python 安裝準備

首先安裝配置 1. 環境的安裝和配置: 運行環境: 官方提供了cpython解釋器 編輯環境: 課程初級階段:推薦大家使用: 記事本工具(UE、notepad++、editplus、sublime、vscode) 中期階段IDE的使用,pycharm 2. 安裝python環境: 在官方下載python解釋器 www.python.org …

Ubuntu18.04--虛擬機配置Samba并從Windows登錄

前言&#xff1a; 本文記錄我自己在Windows上安裝 Virtualbox &#xff0c;并在Virtualbox中安裝 Ubuntu-18.04 虛擬機&#xff0c;在Ubuntu-18.04虛擬機里安裝配置Smaba服務器&#xff0c;從 Windows 宿主系統上訪問虛擬機共享samba目錄的配置命令。 引用: N/A 正文 虛擬…

[C++][數據結構]哈希3:unordered_map和unordered_set的模擬實現

前言 今天我們來試著用哈希封裝一下unordered_map和unordered_set這兩個容器 由于主要的哈希的模擬實現都在之前的文章中&#xff0c;所以本文只是對于幾個小問題進行說明 KeyOfT&#xff1a;取出key 因為我們傳的第二個模板參數是T&#xff0c;我們不知道他是key還是pair&l…

Three.js的材質Material信息

Material材質信息,是獨立于物體頂點之外,與渲染效果相關的屬性。比如通過設置材質可以改變物體的顏色、紋理貼圖、光照模式等等。 基本材質【BasicMaterial】 基本材質BasicMaterial的物體,顏色不會因為光照產生明暗、陰影效果。如果沒有指定的材質顏色,那么顏色就是隨機…

協同過濾的一些理解

協同過濾的一些理解 以下是我對協同過濾的一些理解&#xff0c;歡迎來交。 什么是協同過濾 協同過濾&#xff1a;利用相似用戶的行為或相似商品的特征來進行推薦。 協同過濾&#xff08;Collaborative Filtering, CF&#xff09;是推薦系統中一種常用的技術&#xff0c;它基于…

揭秘LLMOps,高效開發大型語言模型

大家好&#xff0c;隨著人工智能&#xff08;AI&#xff09;的蓬勃發展&#xff0c;一個新興領域語言模型運維&#xff08;LLMOps&#xff09;正逐漸成為關注的焦點。LLMOps專注于對大型語言模型&#xff08;LLMs&#xff09;&#xff0c;例如OpenAI的GPT系列&#xff0c;進行全…

SpringBoot Actuator未授權訪問漏洞的解決方法

1. 介紹 Spring Boot Actuator 是一個用于監控和管理 Spring Boot 應用程序的功能模塊。它提供了一系列生產就緒的功能&#xff0c;幫助你了解應用程序的運行狀況&#xff0c;以及在運行時對應用程序進行調整。Actuator 使用了 Spring MVC 來暴露各種 HTTP 或 JMX 端點&#x…

【機器學習】卷積神經(CNN)在圖像識別中的革命性應用:自動駕駛的崛起

卷積神經網絡&#xff08;CNN&#xff09;在圖像識別中的革命性應用&#xff1a;自動駕駛的崛起 一、卷積神經網絡&#xff08;CNN&#xff09;的基本原理二、CNN在圖像識別中的顯著成果三、CNN在自動駕駛汽車中的物體檢測和識別四、CNN在圖像識別中的代碼實例 隨著人工智能和深…

輪式機器人簡介

迄今為止,輪子一般是移動機器人學和人造交通車輛中最流行的運動機構。它可達到很高的效率, 如圖所示, 而且用比較簡單的機械就可實現它的制作。 另外,在輪式機器人設計中,平衡通常不是一個研究問題。 因為在所有時間里,輪式機器人一般都被設計成在任何時間里所有輪子均與地接…

大模型系列之解讀MoE

Mixtral 8x7B 的推出&#xff0c; 使我們開始更多地關注 基于MoE 的大模型架構&#xff0c; 那么&#xff0c;什么是MoE呢&#xff1f; 1. MoE溯源 MoE的概念起源于 1991 年的論文 Adaptive Mixture of Local Experts&#xff08;https://www.cs.toronto.edu/~hinton/absps/jjn…