hdu1198 Farm Irrigation —— dfs or 并查集

Monocle2拟时轨迹基因模块的GO富集解析 本文详细解析了如何对Monocle2拟时分析中得到的基因表达模块进行GO富集分析。通过从热图对象中提取聚类模块,并利用clusterProfiler等工具进行功能注释,将抽象的基因表达时序模式转化为可解释的生物学功能主题,如免疫应答、细胞外基质组织等,从而深入理解细胞命运转变的驱动机制。 阅读详情

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1198


dfs:

#include<cstdio>//hdu1198 dfs
#include<cstring>

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},{1,1,1,0,1},{0,1,1,1,1},{1,0,1,1,1},{1,1,1,1,1}};

const int ca[5][2] = {0,1,1,0,1,1,1,2,2,1}, mov[4][2] = {1,0,-1,0,0,1,0,-1};
int m,n,sum, map[550][550],id[550][550];

void build(int set, int x, int y)
{
    for(int k = 0; k<5; k++)
    {
        if(well[set][k])
        {
            map[3*x+ca[k][0]][3*y+ca[k][1]] = 1;
        }
    }
}

void dfs(int x, int y, int iden)
{
    id[x][y] = iden;
    for(int i = 0; i<4; i++)
    {
        int xx = x + mov[i][0], yy = y + mov[i][1];
        if(xx<0 || xx>3*m-1 || yy<0 || yy>3*n-1 ) continue;
        if(map[xx][yy] && !id[xx][yy])
        dfs(xx,yy,iden);
    }
}

int main()
{
    char init[5005];
    while(scanf("%d%d",&m,&n) && (m!=-1 || n!=-1 ))
    {
        memset(map,0,sizeof(map));
        memset(id,0,sizeof(id));
        for(int i = 0; i<m; i++)
        {
            scanf("%s",init);
            for(int j = 0; j<n; j++)
            build(init[j]-65,i,j);
        }
        sum = 0;
        for(int i = 0; i<=3*m-1; i++)
        {

            for(int j = 0; j<=3*n-1; j++)
            {
                //printf("%d ",map[i][j]);
                if(map[i][j] && !id[i][j])
                {
                    dfs(i,j,++sum);
                }
            }
            //putchar('\n');
        }

        printf("%d\n",sum);

    }
    return 0;
}



并查集:

#include<cstdio>//hdu1198 并查集 每个格子的标号为i*n+j,初始father也为i*n+j,以次来作为合并集合的依据
#include<cstring>

int n,m,father[55][55];
char map[55][55];
char type[11][5]={"1010","1001","0110","0101","1100","0011",
               "1011","1110","0111","1101","1111"};

int find(int x)
{
    return (x==father[x/n][x%n])?x:find(father[x/n][x%n]);
}

int unit(int a, int b)
{
    a = find(a);
    b = find(b);
    if(a!=b)//合并集合
        father[a/n][a%n] = b;
}


int judge(int i, int j)
{   //判断是否与左边相连
    if(j>0 && type[map[i][j]-'A'][2]=='1' && type[map[i][j-1]-'A'][3]=='1')
        unit(i*n+j,i*n+j-1);
    //判断是否与上边相连
    if(i>0 && type[map[i][j]-'A'][0]=='1' && type[map[i-1][j]-'A'][1]=='1')
        unit(i*n+j,(i-1)*n+j);
}

int main()
{
    while(scanf("%d%d",&m,&n) && (m!=-1 || n!=-1))
    {
        for(int i = 0; i<m; i++)
        {
            scanf("%s",&map[i]);
            for(int j = 0; j<n; j++)
            {   //初始化为自己
                father[i][j] = i*n+j;
            }
        }
        
        //并查集过程
        for(int i = 0; i<m; i++)
        for(int j = 0; j<n; j++)
        judge(i,j);

        int sum = 0;
        for(int i = 0; i<m; i++)
        for(int j = 0; j<n; j++)//看看有多少个“根节点”
            if(father[i][j]==i*n+j) sum++;

        printf("%d\n",sum);
    }

}



【部署】Kimi 接入OpenClaw完整步骤及关键注意事项 本文详细介绍了如何将Kimi AI接入OpenClaw系统的完整步骤。首先需确保环境满足OpenClaw版本要求和系统支持,然后通过配置向导完成本地网关设置和Kimi模型接入,包括API密钥配置。文章提供了详细的命令操作和界面截图指导,并重点说明了安全警告处理、服务状态检查、API密钥有效性验证等关键注意事项。最后还展示了Kimi流量消耗明细和问题排查方法,帮助用户顺利完成接入并解决常见问题。整个流程清晰明了,涵盖了从环境准备到最终验证的全部环节。 阅读详情

相关推荐

Ansys Zemax实战:5步搞定多模光纤耦合效率优化(附IMAE操作数详解)

本文详细介绍了使用Ansys Zemax优化多模光纤耦合效率的5个关键步骤,包括几何图像分析设置、IMAE操作数应用及偏振效应处理。通过实战案例解析,帮助工程师快速掌握光纤耦合效率提升技巧,特别针对IMAE操作数的配置保存机制和菲涅尔损耗控制进行深度讲解。

potato的博客 691

hdu 1198 (并查集 or dfs) Farm Irrigation

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1198 有题目图11种土地块,块中的绿色线条为土地块中修好的水渠,现在一片土地由上述的各种土地块组成,需要浇水,问需要打多少口井 比如 ADCFJKIHE是下图这种情况 需要打三口井,其实想多了就是集合合并差不多,用并查集可以解决,将每个格子按顺序是从0到n*m-1,然后根据连接情况判断是否相...

weixin_30627341的博客 110

Docker容器化部署Ceph集群:从零搭建高可用分布式存储

本文详细介绍了如何使用Docker容器化部署Ceph集群,从零搭建高可用分布式存储系统。通过环境一致性、快速扩容和资源隔离等优势,Docker显著提升了Ceph集群的部署效率和运维便捷性。文章涵盖硬件规划、镜像选择、单节点部署、多节点扩展及性能调优等实战内容,帮助开发者快速掌握分布式存储系统的容器化部署技巧。

weixin_29081101的博客 422

【HDU 1198】Farm Irrigation(dfs+并查集+bfs)

DescriptionBenny 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 has a differen

Ice_Confuse 1500

学习记录——SIMPACK生成轨道谱文件的方法

生成轨道谱文件的方法,可以用于实测轨道谱导入和自制轨道谱导入仿真

weixin_51965897的博客 7804

QT实现串口通信

要实现串口通信,需要知道串口通信需要的信息 主要参数有:波特率、校验位、数据位、停止位、控制流 主要操作有:串口的打开和关闭、刷新设备串口、接发数据、开关显示灯等。 实现效果如图: 最后附赠完整源码。 第一步:在头文件中引入 QtSerialPort 类的两个头文件(必须引入) // 引入串口通信的两个头文件(第一步) #include <QtSerialPort/QSerialPort> // 提供访问串口的功能 #include <QtSerialPo

m0_49456900的博客 6万+

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

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

凌风 4996

RSA算法详解:万字文章详解RSA的加密与解密

为了彻彻底底的研究明白RSA算法,真的是。。煞(lei)费(si)苦(wo)心(le),首先我希望自己前前后后、彻彻底底的琢磨明白,其次我也希望我把他分享出来以后,大家都能读得懂,这篇文章真的是我迄今为止写的又臭又长的一篇文章了,但是我能保证的是,你读完了以后,绝对不会再问RSA是啥玩意儿了。。

布啦啦 7668

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

倍福EL6002实现RS232自由口通信,以称重模块RS232数据接收为例

RS-232是美国电子工业联盟制定的串行数据通信接口标准,原始编号全称是EIA-RS-232(简称RS232),它被广泛用于DCE(Data Communication Equipment ) 和 DTE(Data Terminal Equipment) 之间的连接。最早的台式电脑都会保留9针的232接口,用于串口通信,目前基本被USB接口取代。CTS是对请求发送RTS信号的响应,当DCE已经准备好接收数据时,该信号有效(ON),通知DTE可用使用TXD发送数据了。弄完了,再将CTS设置为1,让A发数据。

weixin_41883890的博客 1726

5.13华为OD机试真题 新系统 - 社交网络相同爱好好友查询 (Java/Py/C/C++/Js/Go)

5.13华为OD机试真题 新系统 - 社交网络相同爱好好友查询 (Java/Py/C/C++/Js/Go)

算法大师! 155

HDU 1198 Farm Irrigation ( dfs )

Farm IrrigationTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 10978    Accepted Submission(s): 4809Problem DescriptionBenny has a spacious farm...

BBHHTT的博客 496

STM32+FreeRTOS环境下LwIP协议栈移植详解

本文详细介绍了在STM32F407ZGT6平台上移植轻量级TCP/IP协议栈LwIP的过程。使用FreeRTOS操作系统和LAN8720A以太网PHY芯片,通过STM32CubeMX生成基础工程配置。重点包括LwIP源码的获取与工程集成、关键配置文件的编写(如lwipopts.h)、操作系统适配层sys_arch.c的实现,以及以太网接口驱动ethernetif.c的移植。文章特别强调内存管理、中断优先级、硬件校验和等关键配置项的注意事项,为基于STM32和LwIP的嵌入式网络开发提供了实用参考。

电脑管家 754

HDU-1198 Farm Irrigation

数连通块的个数,略繁琐,

The Blog Of Uncle_Sugar 346

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

hdu1198 Farm Irrigation(DFS)

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

hahahaha 750

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

hdu1198 Farm Irrigation

一开始没有dfs,只是遍历一遍然后看上下左右,发现不行,还是需要dfs一下的 本质还是并查集,不过就是合并的前奏长了点 #include #include #include #include #include using namespace std; int father[500000]; int vis[550][550]; int map[100][4];//0.1.2.3分别表

yz467796454的博客 226

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

HDOJ 1198 Farm Irrigation

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1198 题目大意:有一块n×m大小的农田,被分隔成许多小的正方形,每个正方形中都装有水管,一共有11种水管,分别用字母A~K标明。正方形的中心可以有水源,水可以沿着水管流到其他的正方形上,问至少需要多少个水源,保证农田全部被灌溉。                          

Step by step, be the best. 1145

HDU 1198 Farm Irrigation(DFS)

大意:  有A~K的11种地形,上面有连通的渠道,输入一种布置地形的方式,求连通的地形的数量。 思路:  虽然说是考查并查集,但是个人还是比较倾向于用DFS去做...(为本人并查集用得不太好找借口...)。 但是思路都是一样,首先用dir数组来标识4个方向可否连通,然后遍历图,并查集思路是将两方可连通的加入集合中,最后输出集合的数量,DFS思路是如果某方向互相连通,就继续向该方向搜索,将搜

WeRIndex 443

HDU 1198 Farm Irrigation

题意:有如上图11种土地块,块中的绿色线条为土地块中修好的水渠,现在一片土地由上述的各种土地块组成,需要浇水,问需要打多少口井。 题解:联通块类型题,关键是预处理好给定的几个图形,按照4位二进制保存 #include #include #include #include #include #include #include #include #include #include

Ezereal的博客 484

HDU 1198 Farm Irrigation(并查集,自己构造连通条件或者dfs)

Farm IrrigationTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 11188    Accepted Submission(s): 4876Problem DescriptionBenny has a spacious...

Y先森0.0 147

hdu 1198 Farm Irrigation dfs

View Code #include <stdio.h>int n,m,ans;int dir[4][2]={-1,0,0,-1,0,1,1,0};//上左右下int ar[12][4]={{1,1,0,0},{1,0,1,0},{0,1,0,1},{0,0,1,1}, {1,0,0,1},{0,1,1,0},{1,1,1,0},{1,1,0,1}...

diaopi1575的博客 150

hdu1198Farm Irrigation

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1198 我是在最小生成树的分类做的这个题,说好的最小生成树呢。。。 dfs实现:    初始化每个板块四个方向的连通性,然后dfs就可以了,搜索的时候注意越界,重复访问,下一个板块的连通性问题。 #include #include char s[100][100]; int

奋斗的Die Young 570

D - Farm Irrigation HDU - 1198(bfs、dfs连通块、并查集)

思路 题意 给我们一个n*m的农田,每块小块农田的的地下,都有一个如上图所示的水管,某块小农田可以与相邻的小农田连通,如果这两个小农田的 管道可以拼接到一起,问我们 这个图中的 “连通块” 有几个 分析 这一题 可以用 dfs去递归搜索连通块的数量、也可以用bfs去搜索,最后统计一下dfs、bfs调用的次数就是答案;也可以用并查集 不断合并集合,最终判读 集合的数量就是答案, 这题 要注意的是怎么判读:当前的某个农田x与,水平/竖直方向的农田可以连通? 我们讨论:x与相邻水平方向的农田的

做一只熊猫不好吗? 261

HDU 1198 Farm Irrigation (DFS)

Farm Irrigation 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 has a di...

Yyanggy 202
上一篇: hdu1010 Tempter of the Bone —— dfs+奇偶性剪枝
下一篇: uva 439 Knight Moves 骑士移动 —— bfs
DOLFAMINGO
博客等级 码龄10年 8粉丝 216原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值