BUPT复试专题—图像识别(2014-2)
题目描述
你的任务是写一个程序,分辨出给定图像中一共被分为多少个区域。
输入
输入的第一行是一个整数T (T<=100),表示测试数据的组数。
每组测试数据的第一行是三个整数N,M,D(1<=N,M<=100, 0<= D<=255),意义如上所述。
接下来N行,每行M个整数,表示给定图像的每个像素点颜色。
输出
样例输入
2
3 3 0
1 1 1
0 1 0
0 1 0
3 4 1
10 11 12 13
9 8 7 6
2 3 4 5
样例输出
3
1
来源
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string>
using namespace std;
int donser[][];
bool lable[][];
bool chack(int m,int n)
{
for(int i=;i<m;i++)
for(int j=;j<n;j++)
if(lable[i][j]==)
return ;
return ;
}
void counts(int x,int y,int m,int n,int d)
{
if(lable[x][y]==)
return;
lable[x][y]=;
int color=donser[x][y];
if(x->=&&y->=&&abs(donser[x-][y-]-color)<=d)
counts(x-,y-,m,n,d);
if(x->=&&y>=&&abs(donser[x-][y]-color)<=d)
counts(x-,y,m,n,d);
if(x->=&&y+<n&&abs(donser[x-][y+]-color)<=d)
counts(x-,y+,m,n,d);
if(x>=&&y->=&&abs(donser[x][y-]-color)<=d)
counts(x,y-,m,n,d);
if(x>=&&y+<n&&abs(donser[x][y+]-color)<=d)
counts(x,y+,m,n,d);
if(x+<m&&y->=&&abs(donser[x+][y-]-color)<=d)
counts(x+,y-,m,n,d);
if(x+<m&&y>=&&abs(donser[x+][y]-color)<=d)
counts(x+,y,m,n,d);
if(x+<m&&y+<n&&abs(donser[x+][y+]-color)<=d)
counts(x+,y+,m,n,d);
return;
}
int main()
{
int T;
cin>>T;
while(T--)
{
int m,n,d,num=;
cin>>m>>n>>d;
for(int i=;i<m;i++)
{
for(int j=;j<n;j++)
{
cin>>donser[i][j];
lable[i][j]=;
}
}
while(!chack(m,n))
{
for(int i=;i<m;i++)
{
for(int j=;j<n;j++)
{
if(lable[i][j]==)
{
num++;
counts(i,j,m,n,d);
} }
}
}
cout<<num<<endl;
}
return ;
}
BUPT复试专题—图像识别(2014-2)的更多相关文章
- BUPT复试专题—旋转图像(2014)
题目描述 将一幅只含有01像素点的图片进行顺时针旋转,旋转的角度仅包含0°,90°,180°,270° 输入 第一行一个整数T(<50)表示输入的组数 每组测试数据第一行是两个整数N和M(< ...
- BUPT复试专题—众数(2014)
题目描述 有一个长度为N的非降数列,求数列中出现最多的数,若答案不唯一输出最小的数 输入 第一行T表示测试数据的组数(T<100) 对于每组测试数据: 第一行是一个正整数N表示数列长度 第二行有 ...
- BUPT复试专题—数据库检索(2014软院)
题目描述 在数据库的操作过程中,我们进场会遇到检索操作.这个题目的任务是完成一些特定格式的检索,并输出符合条件的数据库中的所有结果. 我们现在有一个数据库,维护了学生的姓名(Name),性别(Sex) ...
- BUPT复试专题—最近公共祖先(2014软院)
题目描述 给出一棵有N个节点的有根树TREE(根的编号为1),对于每组查询,请输出树上节点u和v的最近公共祖先. 最近公共祖先:对于有向树TREE的两个结点u,v.最近公共祖先LCA(TREE u,v ...
- BUPT复试专题—最长连续等差子数列(2014软院)
题目描述 给定-个长度为N的整数数列,你需要在其中找到最长的连续子数列的长度, 并满足这个子数列是等差的.注意公差小于或等于0的情况也是允许的. 输入 第一行为数据组数T(1~100),表示测试数 ...
- BUPT复试专题—奇偶求和(2014软件)
题目描述 给出N个数,求出这N个数,奇数的和以及偶数的和. 输入 第一行为测试数据的组数T(1<=T<=50).请注意,任意两组测试数据之间是相互独立的. 每组数据包括两行: 第一行为一个 ...
- BUPT复试专题—网络传输(2014网研)
题目描述 网络的高效互联与智能传输是提升海量用户服务请求映射效率的重要措施.在这个任务中,你需耍在最小的传输时间内,将数据源传输到指定的网络节点中.我们给定的网络一共包含N个节点,其中节点1为数据源. ...
- BUPT复试专题—进程管理(2014网研)
题目描述 在操作系统中,进程管理是非常重要的工作.每个进程都有唯一的进程标识PID.每个进程都可以启动子进程,此时我们称该它本身是其子进程的父进程.除PID为0的进程之外,每个进程冇且只冇一个父进程. ...
- BUPT复试专题—分数加法(2014网研)
题目描述 求2^-a + 2^-b,其中a和b均为正整数,结果用最简分数表示 输入 第一行为测试数据的组数T (1~400).请注意,任意两组测试数据之间相互独立的.每组测试数据一行,包含两个整数a和 ...
随机推荐
- Linux配置使用SSH Key登录并禁用root密码登录(替换同理)
Linux系统大多说都支持OpenSSH,生成公钥.私钥的最好用ssh-keygen命令,如果用putty自带的PUTTYGEN.EXE生成会不兼容OpenSSH,从而会导致登录时出现server r ...
- 数据结构( Pyhon 语言描述 ) — — 第3章:搜索、排序和复杂度分析
评估算法的性能 评价标准 正确性 可读性和易维护性 运行时间性能 空间性能(内存) 度量算法的运行时间 示例 """ Print the running times fo ...
- 不同深度的图片转换cvConvertScale
不同深度图像的转换:要注意范围比如IPL_DEPTH_8U 转到 IPL_DEPTH_32U要用cvConvertScale(pImg8, pImg32, 1.0/255, 0); 要除255反过来I ...
- python基础学习笔记——初识函数
什么是函数 我们目前为止,已经可以完成一些软件的基本功能了,那么我们来完成这样一个功能:约x 1 2 3 4 5 pint("拿出手机") print("打开陌陌&quo ...
- 关于在一台主机上安装2个不同版本的Oracle服务端
一.安装Oracle12c 按正常安装方法安装即可! ORACLE_BASE=/u01/app ORACLE_HOME=/u01/app/oracle ORACLE_SID=a4orcl 二.安装Or ...
- linux实时查看更新日志命令
很多时候在调试生成或正式平台服务器的时候想查看实时的日志输出,在Linux中可以使用tail 或 watch来实现. 比如我们项目中有个 app.log 的日志文件,我们普通读取都使用 vi app. ...
- shell的echo命令
echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串.命令格式: echo arg 您可以使用echo实现更复杂的输出格式控制. 显示转义字符 echo "\"It ...
- P1736 创意吃鱼法 (动态规划)
题目描述 回到家中的猫猫把三桶鱼全部转移到了她那长方形大池子中,然后开始思考:到底要以何种方法吃鱼呢(猫猫就是这么可爱,吃鱼也要想好吃法 ^_*).她发现,把大池子视为01矩阵(0表示对应位置无鱼,1 ...
- 记一次Jenkins 打包异常 ERROR: Exception when publishing, exception message [Failure]
今天早上打包一直都没有问题,突然有一次打包突然出现异常现象,如下: ERROR: Exception when publishing, exception message [Failure] Buil ...
- 解决安卓SDK更新dl-ssl.google.com无法连接的方法
Q:解决安卓SDK更新dl-ssl.google.com无法连接的方法: A1.修改C:\windows\system32\dirvers\etc\hosts文件,将其复制到其他地方修改后替换回原来的 ...