当前位置:网站首页>蓝桥:合根植物
蓝桥:合根植物
2022-07-04 16:09:00 【阿白|】
问题描述
w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。
这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。
如果我们告诉你哪些小格子间出现了连根现象,你能说出这个园中一共有多少株合根植物吗?输入格式
第一行,两个整数m,n,用空格分开,表示格子的行数、列数(1<m,n<1000)。
接下来一行,一个整数k,表示下面还有k行数据(0<k<100000)
接下来k行,第2+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样例说明:其合根情况参考下图(注意:6也是一个连通子集)
样例输出
5
并查集
代码:
package p1.text; import java.util.*; /** * @author WitMoy * @version V1.8 * @date : 2022-07-02 18:16 */ public class Main { private static final Scanner sc = new Scanner(System.in); private static int place[] = new int[1005]; private static int rank[] = new int[1005]; public static void main(String[] args) { int m, n, k; m = sc.nextInt(); n = sc.nextInt(); k = sc.nextInt(); int ans = 0; init(m * n); for(int i = 0; i < k; i++){ int a = sc.nextInt(); int b = sc.nextInt(); join(a,b); } HashSet<Integer> hs = new HashSet<>(); for(int i = 1; i < n * m; i++){ hs.add(place[i]); } System.out.println(hs.size()); } private static void init(int n){ for(int i = 1; i <= n; i++){ place[i] = i; rank[i] = 1; } } private static int find(int x){ if(place[x] == x) return x; return place[x] = find(place[x]); } private static void join(int x, int y){ x = find(x); y = find(y); if(x == y) return; if(rank[x] > rank[y]){ place[y] = x; }else{ if(rank[x] == rank[y]) rank[y]++; place[x] = y; } } }
边栏推荐
- VSCode修改缩进不成功,一保存就缩进四个空格
- 【系统分析师之路】第七章 复盘系统设计(结构化开发方法)
- regular expression
- Redis主从复制
- Five thousand words to clarify team self-organization construction | Liga wonderful talk
- The controversial line of energy replenishment: will fast charging lead to reunification?
- The Block:USDD增长势头强劲
- R language plot visualization: plot visualizes overlapping histograms and uses geom at the top edge of the histogram_ The rug function adds marginal rug plots
- RecastNavigation 之 Recast
- Win32 API access route encrypted web pages
猜你喜欢
超标量处理器设计 姚永斌 第5章 指令集体系 摘录
Superscalar processor design yaoyongbin Chapter 6 instruction decoding excerpt
Firewall basic transparent mode deployment and dual machine hot standby
The controversial line of energy replenishment: will fast charging lead to reunification?
90后开始攒钱植发,又一个IPO来了
使用3DMAX制作一枚手雷
With the stock price plummeting and the market value shrinking, Naixue launched a virtual stock, which was deeply in dispute
wuzhicms代码审计
Offline and open source version of notation -- comprehensive evaluation of note taking software anytype
公司要上监控,Zabbix 和 Prometheus 怎么选?这么选准没错!
随机推荐
curl 命令妙用
中断的顶半部和底半部介绍以及实现方式(tasklet 和 工作队列)
mysql5.7安装教程图文详解
7 RSA Cryptosystem
【HCIA持续更新】WLAN概述与基本概念
How to test MDM products
2022 national CMMI certification subsidy policy | Changxu consulting
创业两年,一家小VC的自我反思
Clever use of curl command
regular expression
RecastNavigation 之 Recast
Developers, MySQL column finish, help you easily from installation to entry
78岁华科教授冲击IPO,丰年资本有望斩获数十倍回报
Performance test of Gatling
KS007基于JSP实现人个人博客系统
Pytorch深度学习之环境搭建
Heartless sword Chinese translation of Elizabeth Bishop's a skill
【Proteus仿真】基于VSM 串口printf调试输出示例
超标量处理器设计 姚永斌 第7章 寄存器重命名 摘录
你应该懂些CI/CD