HDU 1198 Farm Irrigation 【并查集】

STM32N6570-DK ISP调试 将下载线接入STLINK V3EC接口,将BOOT1拨码拨至右边,即将其置为H,上电或已经上电的按复位,打开STM32CubeProgrammer,设置start address:0x70000000。板子消耗电流较大,即使缩短数据线接了USB供电依然不能正常点亮显示屏,最终通过板上CN2端子加了外部5V供电,仍然需要560mA的外部电流。3.烧录bin文件:STM32N6_ISP_IQTune_App_revC01-v1.1.0-trusted.bin。 阅读详情

 思路:

         此题就是基本的并查集的应用。

 关于此题的一些处理技巧:

(1)如何把A->k块表示出来,从而使之容易判断两块地是否可以归并到一起

例如:


把A块划分如上图所示,有4个方向,与其他块有通路的方向标记为1,反之为0,所以A={1 1 0 0},其他同理

  (2)如何在map中识别是那一块,然后根据这一块找到它的四个方向的0/1情况呢?这里把A->K等效成了0-11(通过坐标找到map所在位置的字符,然后用此字符减去'A'),然后开辟一个a[11][4]的数组标记A->K每一块的方向

 (3)约定把map中的块从左到右,从上到下,标记为第1块,一直到n*m块,通过坐标(i,j),可以计算这是那一块(公式(i-1)*n+j),从而在下面的并查集的函数(初始化函数,find函数,以及归并函数)中容易操作

    AC代码:

 

#include<stdio.h>
int father[2505],r[2505];
int map[55][55];
int m,n;
int a[11][4]={{1,1,0,0},{1,0,0,1},{0,1,1,0},{0,0,1,1},{1,0,1,0},{0,1,0,1},{1,1,0,1},{1,1,1,0},{0,1,1,1},{1,0,1,1},{1,1,1,1}};
int count;
void initial()
{
     int i;
	 for(i=1;i<=m*n;i++)
	 {
	     father[i]=i;
		 r[i]=1;
	 }
}
int find(int x)
{
     if(father[x]!=x)
		 father[x]=find(father[x]);
	 return father[x];
}
void Union(int a,int b)
{
     int x=find(a);
	 int y=find(b);
     if(x==y)return ;
	 if(r[x]<=r[y])
	 {
	       father[x]=y;
		   r[y]+=r[x];
		   count--;
	 }
	 else
	 {
	       father[y]=x;
		   r[x]+=r[y];
		   count--;
	 }
}
int main()
{
	int i,j;
	char x;
	while(scanf("%d%d",&m,&n)!=-1&&m>=0&&n>=0)
	{
	 getchar();
	 for(i=1;i<=m;i++)
	 {
		 for(j=1;j<=n;j++)
		 {
		     scanf("%c",&x);
			 map[i][j]=x-'A';
		 }
		 getchar();
	 }
	 count=n*m;
	 initial();
	 for(i=1;i<=m;i++)
		 for(j=1;j<=n;j++)
		 {
		     if(i-1>0)
			 {
			     if(a[map[i][j]][0]==1&&a[map[i-1][j]][2]==1)
					 Union((i-1)*n+j,(i-2)*n+j);
			 }
			 if(j-1>0)
			 {
			     if(a[map[i][j]][1]==1&&a[map[i][j-1]][3]==1)
					 Union((i-1)*n+j,(i-1)*n+(j-1));
			 }
		 }
      printf("%d\n",count);
	}
    return 0;
}


UNet改进(12):融合小波变换与注意力机制的图像分割新方法 本文提出了一种改进的WaveletAttentionUNet架构,通过结合小波变换和注意力机制来增强传统UNet的多尺度特征提取能力。该网络使用分组卷积模拟小波分解,将输入通道扩展为4个子带(LL、LH、HL、HH),并通过通道注意力机制自适应加权各子带特征。网络保留了UNet的编码器-解码器结构,在关键位置集成了WaveletAttention模块。实验证明该方法在医学图像分割等任务中能更好地保持边缘细节和复杂纹理特征,同时保持计算效率。 阅读详情

相关推荐

Deep Reinforcement Learning - 1. DDPG原理和算法

Deep Reinforcement Learning - 1. DDPG原理和算法 背景描述 DDPG的定义和应用场景 DDPG算法相关基本概念定义 DDPG实现框架和算法 DDPG对于DPG的关键改进 下一篇 以下用RL作为Reinforcement Learning 的简称。背景描述概括来说,RL要解决的问

kenneth_yu的博客 14万+

HDU 1198 Farm Irrigation(并查集)

HDU 1198 Farm Irrigation 题目大意,给你一个N*M的矩阵,有11种格子,每个格子互联的部分不同,问你矩阵一共有几个连通分量。 输入:每个实例第一行是N和M,1 输出:连通分量个数。 分析:从上到下,从左到右一个一个格子分析,如果当前格子连通上方且它上面已经有格子(且该格子也连通了当前格子),那么它属于上面那个连通分量,如果当前格子连通左边,且它左边还有格子(且该格

code 1329

LTspice基础教程-024.参数扫描;step指令用法

step指令用于参数扫描,扫描步骤可以是线性的,对数的或列表。 下面介绍几种常用用法: 绘制一简单电阻分压电路,如下: 线性扫描 语法:.step param <Name> <Start Value> <Stop Value> <Increment> 例:.step param Res 20 100 20 意思是R2的阻值从20变化到100,...

gaoyong_wang的博客 3万+

hdu 1198 Farm Irrigation 并查集

Problem Description Benny has a spacious farm land to irrigate. The farm land is a rectangle, and is divided into a lot of samll squares. Water pipes are placed in these squares. Different square h

小周周i的博客 368

YOLOv8实战:用Labelme标注自定义数据集并训练分割模型(附完整代码)

本文详细介绍了使用Labelme标注自定义数据集并训练YOLOv8实例分割模型的完整流程。从环境搭建、数据标注与格式转换,到模型训练、调优、验证及部署,提供了实战代码和调优建议。文章还探讨了如何结合追踪目标技术,实现视频流中的实例分割与目标追踪,为计算机视觉应用提供了一套可复制的解决方案。

552

UE4 GamePlay框架深度解析:从蓝图到C++构建多人游戏核心

在游戏开发与实时交互应用领域,一套清晰、可扩展的底层框架是项目成功的关键。GamePlay框架作为虚幻引擎(UE4/UE5)的核心架构,定义了游戏世界中对象交互、状态管理与网络同步的基本原理。它通过职责分离的设计模式,将游戏规则(GameMode)、全局状态(GameState)、玩家状态(PlayerState)、可操控实体(Pawn/Character)及其控制器(Controller)等核心类有机组织起来,确保了逻辑的清晰性与多人游戏数据的一致性。其技术价值在于为开发者提供了一套经过验证的最佳实践,大

weixin_33924770的博客 616

并查集 Farm Irrigation HDU - 1198

并查集 Farm Irrigation HDU - 1198 解题思路 事先存每个字母对应上下左右是否能接,是为 111,不是为 000。 之后遍历给出的字母地图,我只做了对右侧和对下侧的判断,若能接通则加入并查集,注意此时处理的是两个字母在数组中的编号。 计算方式为:nnn 行 mmm 列的数组 farmfarmfarm 中,farmfarmfarm[iii] [jjj] 对应编号是 i×n+ji \times n + ji×n+j 注意事项 maxnmaxnmaxn 一开始开了 500500500,

Encore47的博客 218

华为OD机考双机位C卷 - 完美走位 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 完美走位(OD上机考试双机位C卷)。提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 1125

hdu1198 Farm Irrigation —— dfs or 并查集

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1198 dfs: #include//hdu1198 dfs #include int well[11][5] = { {1,1,1,0,0},{1,0,1,1,0},{0,1,1,0,1},{0,0,1,1,1},{1,0,1,0,1},{0,1,1,1,0},{1,1,1,1,0},{

A man can be destroyed, but not defeated. 377

Qt | linux+openCV+Qt6.5.3环境搭建成功版(带例子)

opencv安装 Qt 实战举例

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 1885

华为HCIE之TS部分整理

TroubleShooting 整体拓扑 1. MSTP 题目需求:site1 中,CLIENT1 属于 VLAN12,CLIENT3 属于 VLAN34;MSTP 中的 VLAN12 属于 instance1,vlan34 属于 instance2;两个 instance 的主备根桥分别在 SW1 和 SW2 上,并且要求 CLIENT1访问 R1 时经过的路径是 SW3-SW1-R1;同时要求 CLIENT3 访问 R1 时经过的路径是SW3-SW2-R1; 排错思路: ①查看SW3 SW1 SW

ledrsnet的博客 5756

【hdu1198】Farm Irrigation——并查集

Problem Description Benny has a spacious farm land to irrigate. The farm land is a rectangle, and is divided into a lot of samll squares. Water pipes are placed in these squares. Different square h

CFhM_R's Blog 468

工程师必读一次性讲明白系列(十三)眼图、阻抗匹配、信号一致性、射频匹配、电磁感应

概念主要作用影响因素解决方法眼图评估信号质量,显示失真和噪声噪声、信号失真、时序抖动改善信号源、使用低噪声组件阻抗匹配避免信号反射,提高传输效率阻抗不匹配、传输线路特性使用匹配电路、适配器信号一致性保证信号稳定准确传输传输线路、噪声干扰使用屏蔽、滤波器,选择合适线路射频匹配确保射频信号高效传输天线设计、阻抗不匹配使用射频匹配器、调整天线设计电磁感应防止电磁干扰对信号的影响设备之间的电磁干扰(EMI)屏蔽、接地、滤波器。

weixin_43199439的博客 156

Farm Irrigation HDU - 1198 (并查集)

滴答滴答---题目链接 思路: 水管连通本质上就是集合的合并,最后求有几个集合的问题,很容易想到并查集 只需要对每个地块与右方和下方的地块进行合并即可,合并之前先判断是否能连通, 若能连通则合并,不能连通,则不能合并 每种水管用一个由'0'和'1'组成的长度为4的字符串代表, 分别表示上下左右四边是否有接口,'0'无,'1'有 #include <iostream&gt...

chen_zan_yu_的博客 247

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

HDU1198Farm Irrigation——并查集

题意:就是找在整个地图中有多少个连通的水管; 思路:先判断是否连通,然后再判断是否需要连接; 因为只是判断相邻片段的水管是否连通,所以在存放的时候用0和1来代表 总结:这道题有一个小细节,就是如果用并查集存的话,需要注意,一个片段是可以重复使用的,所以如果用编号存根节点的话一定是不对的,所以要用片段在地图上的位置来判断根节点。 还有就是一般情况下,数组的开头都用1,把零空出来,会好理解一些

WAR___NING的专栏 547

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

HDU 题目1198 Farm Irrigation 并查集

Farm IrrigationTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 10097 Accepted Submission(s): 4450Problem Description Benny has a spacious f

南风古 311

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

HDU——1198 Farm Irrigation(DFS或并查集)

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1198 样例: Sample Input 2 2 DK HF 3 3 ADC FJK IHE -1 -1 Sample Output 2 3 题意: 你有n∗mn*mn∗m块农田,每块农田都是正方形,其中包含各类水管,在每块农田中心都有一个泉源,泉源中的水可顺着水管流向各个地方,现在要求你判断你至少需要多少个泉源? 解题思路: 这题出得非常好,我们有两种方法解决这个题目,一是dfs,二是并查集。先说

pursuit的博客 584

hdu1198 Farm Irrigation 并查集

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1198 简单并查集 分别合并竖直方向和水平方向即可 代码: 1 #include<iostream> 2 #include<cstdlib> 3 #include<cstdio> 4 #include<cstring> 5 #...

weixin_30457065的博客 147

HDU 1198 Farm Irrigation (并查集 和 dfs两种实现)

题意:有如上图11种土地块,块中的绿色线条为土地块中修好的水渠,现在一片土地由上述的各种土地块组成,需要浇水,问需要打多少口井。 例如下面这个土地块 ADC FJK IHE then the water pipes are distributed like 如图对于能相连的地只需要打一口井,所以以上需要打三口井就能浇所有的块。稍加分析就可得出本质上就是集合的合并,最后求有几个集合的问题,很容易想到并查集。只需要对每个地块与右方和下方的地块进行合并即可。合并之前先判断是否能连通,若能连通则合并,不

凌风 4995

hdu 1198 Farm Irrigation(并查集)

Farm Irrigation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4859    Accepted Submission(s): 2095 Problem Description Benny has

mousehao 579

HDU 1198 Farm Irrigation (并查集)

Farm Irrigation Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5809Accepted Submission(s): 2516 Problem Description Benny has a spa...

128

Hdu 1198 Farm Irrigation 基础并查集

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1198 题目大意:给你已知结构的方框

e的专栏 476

HDU-1198 Farm Irrigation(并查集)

Farm Irrigation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 11414    Accepted Submission(s): 4936   Problem Description Benny has a spac...

无关风月 240

hdu 1198Farm Irrigation(并查集)

Farm Irrigation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7663    Accepted Submission(s): 3289 Problem Description Benny has

Where amazing happens 369

HDU 1198 Farm Irrigation 并查集

题目连接 : http://acm.hdu.edu.cn/showproblem.php?pid=1198 #include<stdio.h> #include<string> #include<cstring> #include<queue> #include<algorithm> #include<functional> #include<vector> #include<iomanip> #i

Katapeltes 327

hdu 1198 Farm Irrigation(并查集强大无比的位运算)

Farm Irrigation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 8223    Accepted Submission(s): 3543 Problem Description Benny has a sp

a709743744的博客 442
上一篇: HDU 1010 Tempter of the Bone 【DFS】
下一篇: HDU 1016 Prime Ring Problem【DFS】
Job_yi
博客等级 码龄14年 6粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值