算法训练-黑白格子

简介:

题目描述
输入一个n*n的黑白图像(1表示黑色,0表示白色),任务是统计其中八连块的个数。如果两个黑格子有公共边或者公共顶点,就说他们属于同

一个八连块。
输入有多组,第一个数输入n(n<=200),表示n*n的数组
输出有几个八连块
样例输入:
6
1 0 0 1 0 0
0 0 1 0 1 0
0 0 0 0 0 0
1 1 0 0 0 0
1 1 1 0 0 0
0 1 0 1 0 0
样例输出:
3

 


本题的目的是训练图的搜索
AC代码:

#include<stdio.h>
#include<string.h>
int a[210][210];
int flag[210][210],n;
void dfs(int x,int y)
{
     if(flag[x][y]==1||a[x][y]==0)
     return;
     flag[x][y]=1;
     //递归寻找上下左右等八个区域  
     if(x-1>=0&&y-1>=0) 
     dfs(x-1,y-1);
     if(x-1>=0) 
     dfs(x-1,y);
     if(x-1>=0&&y+1<n) 
     dfs(x-1,y+1);
     if(y-1>=0) 
     dfs(x,y-1);       
     if(y+1<n)       
     dfs(x,y+1);
     if(x+1<n&&y-1>=0)       
     dfs(x+1,y-1);
     if(x+1<n) 
     dfs(x+1,y);
     if(x+1<n&&y+1<n)
     dfs(x+1,y+1);
     return;
}
int main()
{
    int i,j,sum;
    while(scanf("%d",&n)!=EOF)
    {
       sum=0;
       memset(flag,0,sizeof(flag));
       for(i=0;i<n;i++)
       for(j=0;j<n;j++)
       scanf("%d",&a[i][j]);
       for(i=0;i<n;i++)
       for(j=0;j<n;j++)
       {
          if(a[i][j]==1&&flag[i][j]==0)
          //搜索所有原来没有被搜到过的黑色格子的周围 
          //将它周围所有的黑的格子都标记为被搜索过
          //因为它们是属于一个“八格子”的 
          {dfs(i,j);sum++;}
       } 
       printf("%d\n",sum);
    }
    return 0;
}
 

代码为原创,转载请注明出处!

相关文章
|
4月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-246 算法训练 猴子吃包子
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-246 算法训练 猴子吃包子
58 2
|
4月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-48 算法训练 关联矩阵
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-48 算法训练 关联矩阵
58 0
|
4月前
|
算法 Java Serverless
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-444 算法训练 求和问题
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-444 算法训练 求和问题
50 1
|
4月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-439 算法训练 简单字符变换
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-439 算法训练 简单字符变换
52 1
|
4月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-49 算法训练 寻找数组中最大值
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-49 算法训练 寻找数组中最大值
49 0
|
2月前
knn增强数据训练
【7月更文挑战第27天】
29 10
|
2月前
|
数据采集 编解码 人工智能
破解ChatGPT惊人耗电!DeepMind新算法训练提效13倍,能耗暴降10倍
【7月更文挑战第19天】DeepMind的JEST算法革新AI训练,提升效率13倍,节能10倍。通过联合数据批次选择,预训练指导及多分辨率训练,优化资源利用,降低能耗。实验显示性能提升,达到SOTA水平,但实施需大量资源,依赖优质参考模型。[论文链接](https://arxiv.org/pdf/2406.17711)
56 10
|
2月前
knn增强数据训练
【7月更文挑战第28天】
20 2
|
1月前
|
算法 搜索推荐
支付宝商业化广告算法问题之基于pretrain—>finetune范式的知识迁移中,finetune阶段全参数训练与部分参数训练的效果如何比较
支付宝商业化广告算法问题之基于pretrain—>finetune范式的知识迁移中,finetune阶段全参数训练与部分参数训练的效果如何比较
|
2月前
|
人工智能 边缘计算 算法
破解ChatGPT惊人耗电!DeepMind新算法训练提效13倍,能耗暴降10倍
【7月更文挑战第20天】DeepMind unveils Switch Transformer, revolutionizing AI energy consumption. This novel algorithm boosts training efficiency by 13x and slashes energy use by 10x compared to ChatGPT, marking a significant leap towards eco-friendly AI.
38 2