经典算法之并查集 合根植物

week10-图论(最小生成树) week10-图论(最小生成树) 阅读详情

题目描述:

w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。

这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。

如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗?

输入格式:
第一行,两个整数m,n,用空格分开,表示格子的行数、列数(1<m,n<1000)。
接下来一行,一个整数k,表示下面还有k行数据(0<k<100000)
接下来k行,第行两个整数a,b,表示编号为a的小格子和编号为b的小格子合根了。

格子的编号一行一行,从上到下,从左到右编号。
比如:5 * 4 的小格子,编号:
1  2  3  4
5  6  7  8
9  10 11 12
13 14 15 16
17 18 19 20

样例输入:
5 4
16
2 3
1 5
5 9
4 8
7 8
9 10
10 11
11 12
10 14
12 16
14 18
17 18
15 19
19 20
9 13
13 17

样例输出:

5


解题思路:

并查集解题.

总数减掉合并根数便为合根植物的根数.


代码实现:

import java.util.Scanner;

public class Main {
	static int[] tb;   //整棵树 
	static int num;   //合并数
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		String[] ss = input.nextLine().trim().split(" +");   //根据一个或者多个空格分割
		
		int M = Integer.parseInt(ss[0]);
		int N = Integer.parseInt(ss[1]);
		
		tb = new int[M*N + 1];  //整棵树 0不存
		int k = Integer.parseInt(input.nextLine().trim());   //有k条连通数据
		for (int i = 0; i < k; i++) {
			ss = input.nextLine().trim().split(" +");
			
			//ss[0] ss[1]  表示ss[0]和ss[1]连
			fun(Integer.parseInt(ss[0]), Integer.parseInt(ss[1]));
		}
		
			System.out.println(M*N - num);   //总数减掉有合并数便为合根植物的根数
	}
	
	//a与b连通
	public static void fun(int a, int b) {

		int ra = find(a);   //查询a的父节点 用祖先的号代表整个家族
		int rb = find(b);
		
		if (ra == rb) return;   //若两树的根节点相同则表示本身就为一颗合并数
		
		union(ra, rb);  //合并ra,rb
		num++;
	}
	public static void union(int ra, int rb) {

		tb[ra] = rb;
	}
	public static int find(int x) {   //查找其父节点

		if(tb[x] == 0) return x;
		return tb[x] = find(tb[x]);  //并查集
	}
}



运行调试:



github代码:https://github.com/striner/javaCode/blob/master/Co-rooted%20plants

蓝桥杯历届试题《合根植物》 问题描述  w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。  这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。  如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗?输入格式  第一行,两个整数m,n,用空格分开,表示格子的行数、列数(1&lt;m,n&lt;1000... 阅读详情

相关推荐

plant_image_segmentation:将植物图像分割成所需的植物杂草背景

plant_image_segmentation 将植物图像分割成所需的植物/杂草/背景 参加ACRE竞赛的一部分 储存库内容 型号笔记本 工作报告 问题描述 输入 4组在视角/分辨率/格式等方面不同的图像,每组分为2个子集(麦斯玉米图像/扁豆图像) 训练数据集的每个图像的遮罩 输出 测试集图像的分割蒙版 解决方法 我们的解决方案基于UNET模型,我们还将VGG16的传输学习用于编码器。 图像被切成512x512的图块。 在最终结果中,我们在测试数据集上的联合得分达到了0.72的交集性能。 性能示例: 贡献者 和 在Francesco Lattari,Matteo Matteucci和Giacomo Boracchi教授的课程材料的帮助下

合根植物(并查集)

学习并查集戳这里 问题描述 w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。 这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。 如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗? 输入格式 第一行,两个整数m,n,用空格分开,表示格子的行数、列数(1<...

长夜漫漫,无心睡眠 2010

从PWM到精准电流:双光耦与LM317构建的4-20mA隔离输出方案

本文详细介绍了基于双光耦与LM317的4-20mA隔离输出方案,适用于工业自动化中的PWM信号转换。该方案通过电气隔离和精准电流调节,显著提升抗干扰能力和信号传输精度,同时降低成本60%。文章还分享了电路设计、参数计算及调试经验,为工程师提供实用参考。

weixin_32006655的博客 283

智能优化算法:食肉植物算法-附代码

食肉植物算法(Carnivorous plant algorithm,CPA)是2022年由Ong Kok Meng等人提出的,该算法模拟了食肉植物在恶劣环境中如何适应和生存的行为能力,如猎食昆虫作为食物和授粉以进行繁殖。

Jack旭的博客 2302

UE5Could not be compiled. Try rebuilding from source manually.

UE5Could not be compiled. Try rebuilding from source manually.

weixin_45417260的博客 2771

DID实战指南:从平行趋势检验到PSM-DID的Stata全流程解析

本文详细解析了双重差分法(DID)在政策评估中的应用,从平行趋势检验到PSM-DID的Stata全流程操作。通过实例演示和代码示例,帮助研究者掌握DID方法的核心逻辑、前提条件验证及稳健性检验技巧,提升因果推断研究的准确性。

weixin_29234239的博客 742

2025年7月份最新一区算法——向光生长算法

结果是,处于阴影区域的细胞比位于光照区域的细胞具有更高浓度的生长素。在细胞伸长阶段,算法引入了细胞的弯曲现象及其弯曲因子,以模拟细胞在搜索空间中的运动行为。例如,细胞生物学表明,细胞在早期阶段经历快速生长和分裂,但随着成熟临近,这种迅猛的增长速度会减缓,这通常归因于资源限制、环境压力以及细胞的内在老化过程。当光线照射植物的一侧时,生长素会在阴影一侧积聚,从而使该区域的细胞比光照区域的细胞伸长得更快。该算子通过模拟光照条件差异下生长素从光照细胞向阴影细胞的再分配过程,推动阴影细胞的生长,从而使植物向光弯曲。

淘个代码 2046

FileZilla Server目录显示失败的处理方法

这两天河南大暴雨挺严重导致多处停电,我远在郑州机房的服务器也断网连不上了。一直到今天下午才恢复,影响较大,有些客户要数据,可是数据因为断网拿不到。于是我想,要是能把服务器的数据备份到其他地方,比如我的本机或者另外一台电脑该多好。 于是今天一整天我都在找远程备份数据的方法,把一台服务器上的数据实时同步到另外一台上。或者两台服务器互相同步。 找了半天发现了FreeFileSync这个宝藏软件,它的原理很简单是通过ftp传输数据。 我得先在服务器上安装个ftp服务,首选filezilla server,安..

两天打鱼三天晒网 4453

蓝桥杯:合根植物

这题是最简单的并查集(并查集的实现分三步:1、初始化,2、查找,3、合并),先把所以植物放在一个一维数组里面(植物的下标,就是它的值),当两个植物有关系时,其中一个的值变成另外一个的下标,这样一个合并的植物只有一个其中值等于下标(作为根)。接下来 k 行,每行两个整数 a,b,表示编号为 a 的小格子和编号为 b 的小格子合根了。这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。第一行,两个整数 m,n,用空格分开,表示格子的行数、列数(1≤m,n≤1000)。

2302_79279009的博客 316

蛋白质组学进阶指南 | (八)差异蛋白筛选与功能解析实战

本文是蛋白质组学差异蛋白筛选与功能解析的实战指南。详细讲解了如何利用R语言的limma包进行差异表达分析,结合FDR校正和差异倍数设定筛选关键蛋白,并通过火山图可视化结果。进一步介绍了使用clusterProfiler进行GO与KEGG功能富集分析,以及利用STRING数据库和Cytoscape构建蛋白互作网络以识别枢纽分子,最终串联分析形成可验证的生物学假说。

weixin_29208077的博客 744

Rockchip硬件编码实战:5分钟搞定RK3588上的H.265视频压缩(附FFmpeg集成指南)

本文深入解析了在Rockchip RK3588平台上利用硬件编码器实现高效H.265视频压缩的完整实战流程。文章详细介绍了MPP库的基础使用、FFmpeg集成方法,并重点分享了零拷贝、多实例编码等关键性能优化技巧,帮助开发者充分发挥RK3588的硬件编码能力,实现从YUV原始数据到高质量H.265码流的高效转换。

h6i7j8的博客 1098

【毕业设计】基于深度学习的植物识别算法 - cnn opencv python

🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是🚩 **基于深度学习的植物识别算法 **🥇学长这里给一个题目综合评分(每项满分5分)难度系数:3分工作量:4分创新点:4分🧿。...

HUXINY的博客 4545

【TM1650】STM8S TM1650芯片控制程序

以下为.h文件: #ifndef __TM1650_I2C_H #define __TM1650_I2C_H #include "stm8s.h" #include "stm8s_gpio.h" #include "tim1.h" #include "usart2.h" #include &lt;iostm8s103f3.h&gt; #include &lt;intrinsics....

cxw312864660的博客 1万+

OI梗文化解析:从算法竞赛黑话看程序员社群的语言密码

在计算机科学领域,算法与数据结构是构建程序逻辑的核心基础,其时间复杂度、空间复杂度等概念直接影响着代码的执行效率。从原理层面看,编程不仅是技术实现,更催生了独特的社群文化现象。OI梗正是这种技术文化的典型代表,它源于信息学奥林匹克竞赛选手在长期训练中形成的内部语言体系,将算法知识、调试经验和竞赛压力转化为幽默的社交货币。这类梗文化具有极高的技术价值,既能作为高效的知识记忆锚点,又能成为圈层身份认同的标识。在实际应用场景中,类似“不开long long见祖宗”这样的血泪教训梗,直接关联着C++编程中整数溢出的

weixin_32325225的博客 388

目标检测旋转增强源码带方向

解法1: import cv2 import math import numpy as np import os def get_degree(p1,p0): aaa = math.degrees(math.atan2((p1[1] - p0[1]), (p1[0] - p0[0]))) if aaa < 0: aaa = 360 + aaa aaa = (aaa + 90) if aaa > 360: aa...

jacke121的专栏 2085

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

算法与数据结构系统学习指南:从基础到实践,构建算法思维

算法与数据结构是计算机科学的核心基础,其本质是高效组织和处理数据的方法论。从数组、链表、栈、队列等线性结构,到树、图、哈希表等非线性结构,每种数据结构都有其特定的操作逻辑与时空复杂度。理解这些原理是进行算法设计与分析的前提。算法的价值在于将复杂问题分解,通过排序、搜索、递归、分治、动态规划、贪心、回溯等思想,找到最优或可行的解决方案,从而提升程序的效率与性能。在实际应用中,无论是技术面试中的经典问题,还是日常开发中的系统设计,如Redis数据结构的选择或工业异常检测算法的实现,扎实的算法功底都至关重要。本文

weixin_33766168的博客 327

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

合根植物

资源限制 时间限制:2.0s 内存限制:256.0MB 问题描述   w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。   这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。   如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗? 输入格式   第一行,两个整数m,n,用空格分开,表示格子的行数、列数(1<m,n<1000)。   接下来一行,一个...

qq_44443766的博客 421

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

合根植物(深搜与并查集)

1. 问题描述: 问题描述   w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。   这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。   如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗? 输入格式   第一行,两个整数m,n,用空格分开,表示格子的行数、...

二哈 568

合根植物-Java

题目描述: w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。 这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。 如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗? 输入: 第一行,两个整数m,n,用空格分开,表示格子的行数、列数(1<m,n<1000)。 接下来一行,一个整数k,表示下面还有k行数据(0<k<100000) 接下来k行,第行两个整

qq_45831414的博客 575

并查集(合并与查找)

并查集

weixin_45746505的博客 1509

利用迭代OTSU方法分割植物病斑

介绍:OTSU算法也称最大类间差法,有时也称之为大津算法,被认为是图像分割中阈值选取的最佳算法,计算简单,不受图像亮度和对比度的影响,因此在数字图像处理上得到了广泛的应用。它是按图像的灰度特性,将图像分成背景和前景两部分。背景和前景之间的类间方差越大,说明构成图像的两部分的差别越大,当部分前景错分为背景或部分背景错分为前景都会导致两部分差别变小。因此,使类间方差最大的分割意味着错分概率最小。 改

desmondbcfntu的专栏 2013

(蓝桥杯)合根植物 (并查集)

题目链接:点击打开链接问题描述  w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。  这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。  如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗?输入格式  第一行,两个整数m,n,用空格分开,表示格子的行数、列数(1&lt;...

zxwsbg的博客 6389

(并查集)合根植物

标题:合根植物w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗?输入格式:第一行,两个整数m,n,用空格分开,表示格子的行数、列数(1&lt;m,n&lt;1000)。接下...

一个吃水不忘挖井人的博客。希望能帮助到你 1029

合根植物 并查集 java描述

问题描述   w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。   这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。   如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗? 输入格式   第一行,两个整数m,n,用空格分开,表示格子的行数、列数(1&lt;m,n&...

yhy1315的博客 655

蓝桥杯 历届试题 合根植物 JAVA

问题描述   w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。   这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。   如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗? 输入格式   第一行,两个整数m,n,用空格分开,表示格子的行数

qq_35984195的博客 1万+

【文献阅读】 Sorghum segmentation by skeleton extraction

这是一篇2020年的ECCV文献。 - Gaillard M, Miao C, Schnable J, et al. Sorghum segmentation by skeleton extraction[C]//European Conference on Computer Vision. Springer, Cham, 2020: 296-311. - 讲的是利用骨架提取进行高粱分割(主要是分割茎和叶)。前段时间在做 [骨架提取](https://blog.youkuaiyun.com/weixin_4376

weixin_43768222的博客 1183
上一篇: 经典算法之走迷宫
下一篇: 经典算法之二分查找 找出刚好比x稍微大点的那个数
striner
博客等级 码龄9年 153粉丝 99原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值