【信息学奥赛课课通】最大黑区域
题目描述
二值图像是由黑白两种像素组成的矩形点阵,图像识别的一个操作是求出图像中最大黑区域的面积。请设计一个程序完成二值图像的这个操作。黑区域由黑像素组成,一个黑区域中的每像素至少与该区域中的另一像素相邻,规定一个像素仅与其上、下、左、右的像素相邻。两个不同的黑区域没有相邻的像素。一个黑区域的面积是其所包含的像素数。
输入
第 1 行含两个正整数 n 和 m,1≤n、m≤100,分别表示二值图像的行数与列数,后面紧跟着n 行,每行含 m 个整数 0 或 1,其中第 i 行表示图像的第 i 行的 m 个像素,0 表示白像素,1 表示黑像素。
输出
输出一个数,表示相应的图像中最大黑区域的面积。
样例输入
5 6 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0
样例输出
7
循环,若此元素未被标记则进行搜索,每搜到一个标记一下,并将计数器++,最后输出
代码:
#include <bits/stdc++.h>
using namespace std;
char a[101][101];
int sum, ans, n, m;void dg(int x, int y)
{if (a[x][y] == '1'){a[x][y] = '0';sum++;}if (a[x + 1][y] == '1')dg(x + 1, y);if (a[x - 1][y] == '1')dg(x - 1, y);if (a[x][y + 1] == '1')dg(x, y + 1);if (a[x][y - 1] == '1')dg(x, y - 1);
}main()
{freopen("area.in","r",stdin);freopen("area.out","w",stdout);scanf("%d%d", &n, &m);for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){cin >> a[i][j];}}for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){if (a[i][j] == '1'){sum = 0;dg(i, j);ans = max(sum, ans);}}}printf("%d", ans);return 0;
}
【信息学奥赛课课通】最大黑区域相关推荐
- 【信息学奥赛课课通】 瓷砖
本题目源于<信息学奥赛课课通> 原题链接 洛谷也有改版的题目 题目描述 在一个 w×hw×hw×h 的矩形广场上,每一块 1×11×11×1 的地面都铺设了红色或黑色的瓷砖.小林同学站在某 ...
- 信息学奥赛课课通VS中学生计算机,数学奥赛VS信息学奥赛 孩子们该如何选择
同是奥赛,为什么越来越多的孩子选了信息学? 今年3月,教育部正式发布通知:全面取消中学奥赛等5项全国性高考加分项目.这个消息对很多有志于让孩子"走捷径"的家长而言,可谓晴空霹雳,升 ...
- noip c语言算法教学视频,信息学奥赛课课通(C++)课程视频课程课件与代码
全国青少年信息学奥林匹克联赛(NOIP)和全国青少年信息学奥林匹克竞赛(NOI)是最受各级各类学校重视.最受青少年学生欢迎的计算机编程类竞赛活动.本书以"编写程序的需求"为主线,循 ...
- 【信息学奥赛课课通】分身数对
题目描述: 给出 n 个不同的正整数 a[1] ~ a[n],它们的值在 1~1000000 之间.再给定一个整数 x,编程计算这样的数对个数(a[i],a[j]),1≤i<j≤n 并且 a[i ...
- C++谁在正中间(信息学奥赛课课通)
题目描述 输入一串数,输出排列后最中间的数 输入样例 5 2 4 1 3 5 输出样例 3 简单排序即可 CODE #include<iostream> #include<algor ...
- 信息学奥赛 课课通(c++)p1-3-1
#include<iostream> using namespace std; int main(){const float pi = 3.14159;double r,l,s;cin & ...
- 《信息学奥赛课课通》图床
- 信息奥赛课课通(C++)p164-1质数个数
问题描述: 农夫约翰想从正整数A-B之间,选择一些素数来作为奶牛的编号,作为编号的数各位上的数字至少有一个特定的数字D,如A为11.B为15,D为3时,则A-B之间有11.13两个素数,但组成11的两 ...
- 信息奥赛课课通p155-2统计数字
2 3 #include<iostream> using namespace std; int main() {int a[10001],n,i,t,j,count=1;cin>&g ...
最新文章
- 记录一下LabelImg实际绘制框颜色的位置
- 项目G2SVG.text转换
- Java BigDecimal plus()方法与示例
- 不出来信号 quartus_男人一旦动了真情,会向你发出这6个“信号”不爱的人装不出来...
- java https安全传输
- 【Python】绘制哆啦A梦
- JAVA中日期格式SimpleDateFormat
- springboot 读写分离_springboot +ShardingJDBC 读写分离
- Java基础知识学习06-封装、继承
- Java8中检查字符串在数组中是否存在
- 谁蹭了我的WiFi?浅谈家用无线路由器攻防
- python调用默认播放器_在PotPlayer和MPV挂载SVP脚本进行补帧的部署方法
- Silvaco TCAD安装包相关问题
- 61. 请简述self在类中的意义?
- 云端敏捷部署单节点MySQl与Redis服务(以Ubuntu为例)
- 连接tcp服务器出现的问题及解决方法
- 分布式 - ElasticSearch解决大数据量检索难题
- mysql中声明数组_SQL数据库中怎么定义数组
- Direct3DCreate9与Direct3DCreate9Ex
- 细读《深入理解 Android 内核设计思想》(三)Binder 机制 [上]