hpuoj 1210: OY问题 [搜索]
1210: OY问题 [搜索]
题目描述
OY是什么意思?那么oyt你知不知道呢?
(这拼音首字母真的是一点加密性都没有)
没错,OY就是这个意思(某人的姓),那么你能分得清“O”怎么写和“Y”怎么写吗?
在计算机里,可以用0代表无色,用1代表黑色,这样对上面的图片进行处理就变成了下图。
![](http://acm.hpu.edu.cn/upload/image/20161224/20161224102545_94759.png)
那么问题来了,给出这样的01矩阵,你能否判断它是“O”还是“Y”呢?
你可能会说这太简单了(应该会说吧……),所以为了加大难度,给出矩阵所展示的图形可能是经过旋转、拉伸、平移、缩放之后的。
输入
第一行是一个整数TT,代表有T组测试数据。
对于每组数据,第一行是两个整数nn,mm,代表这个n×mn×m矩阵的大小。
下面有nn行mm列描述这个只含0、1的矩阵。
保证图案只有“O”、“Y”,并且有正确结果。
1≤T≤1001≤T≤100
1≤n,m≤201≤n,m≤20
输出
如果图案为“O”,输出“O”。
如果图案为“Y”,输出“Y”。
样例输入
2 13 9 000000000 000111000 001000100 010000010 010000010 010000010 010000010 010000010 010000010 010000010 001000100 000111000 000000000 13 9 000000000 010000010 001000100 000101000 000010000 000010000 000010000 000010000 000010000 000010000 000010000 000010000 000000000
样例输出
O Y
思路:不能通过每行的奇偶来判断,搜索比较好;
把四个边的边缘的0都搜索一遍变成1,并向周围四个方向延伸,最后剩下有0的就是O了;
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;
char a[25][25];
int n,m;
void dfs(int x,int y)
{a[x][y]='1';for(int dx=-1;dx<=1;dx++){for(int dy=-1;dy<=1;dy++){if(abs(dx)!=abs(dy)){int nx=dx+x;int ny=dy+y;if(nx>=0 && nx<n && ny<m && ny>=0 && a[nx][ny]=='0'){a[nx][ny]='1';dfs(nx,ny);}}}}
}
int main()
{int t,i,j;scanf("%d",&t);getchar();while(t--){scanf("%d %d",&n,&m);for(i=0;i<n;i++){getchar();for(j=0;j<m;j++){scanf("%c",&a[i][j]);}}for(i=0;i<n;i++){for(j=0;j<m;j++){if(j==0 || j==m-1 || i==0 || i==n-1){if(a[i][j]=='0')dfs(i,j);}}}bool flag=true;for(i=0;i<n;i++){for(j=0;j<m;j++){if(a[i][j]=='0')flag=false;}}if(!flag) printf("O\n");else printf("Y\n");}return 0;
}
hpuoj 1210: OY问题 [搜索]相关推荐
- 1210: OY问题 [搜索]
题目描述 OY是什么意思?那么oyt你知不知道呢 (这拼音首字母真的是一点加密性都没有) 没错,OY就是这个意思(某人的姓),那么你能分得清"O"怎么写和"Y" ...
- HPUoj1210: OY问题 [搜索](DFS
1210: OY问题 [搜索] 时间限制: 1 Sec 内存限制: 128 MB 提交: 69 解决: 11 题目描述 OY是什么意思?那么oyt你知不知道呢? (这拼音首字母真的是一点加密性都没有) ...
- 【hpuoj】OY问题
问题 K: OY问题 时间限制: 1 Sec 内存限制: 128 MB 提交: - 解决: - 状态 题目描述 OY是什么意思?那么oyt你知不知道呢? (这拼音首字母真的是一点加密性都没有) 没错, ...
- 微信小程序入门与实战(七月)
微信小程序入门与实战(七月) 第1章 初识微信小程序 第2章 小程序的基本目录结构与文件作用剖析 2-1 小程序页面的4种基本文件类型详解 第3章 rpx响应式单位与flex布局 3-3 新建页面的技 ...
- 自动化机器学习(三)神经网络架构搜索综述(NAS)简述
文章目录 技术介绍 简介 技术栈 实现 数据 数据读取 创建模型并训练 模型预测与评估 模型的导出 技术介绍 简介 自动化机器学习就是能够自动建立机器学习模型的方法,其主要包含三个方面:方面一,超参数 ...
- java搜索项目内的异常_java中用Lucene做搜索,在建索引时遇到的2个异常
版本信息: jdk: 1.6 lucene: 3.2.0 情况是这样的,现在项目用lucene做搜索,我在服务器上跑了个后台线程用于建索引(每次最多从数据库中取出2w条),隔10分钟会跑一次,但是 隔 ...
- 洛谷 - P2324 - 骑士精神 - A*搜索
为什么估价是16,因为最后一步复原空格可以恢复两个位置,当然设成17.18都可以. #include<bits/stdc++.h> using namespace std; typedef ...
- 2016蓝桥杯C++A组第六题 寒假作业【暴力搜索】
原题: 现在小学的数学题目也不是那么好玩的. 看看这个寒假作业:□ + □ = □□ - □ = □□ × □ = □□ ÷ □ = □(如果显示不出来,可以参见[图1.jpg])每个方块代表1~13 ...
- 1 基于搜索的路径规划 —— Dijkstra算法(python)
文章目录 算法讲解 重要说明 栅格地图 有权图 1 def main() 1.1 设置机器人的起点和终点,栅格大小,机器人半径 1.2 设置障碍物的位置 1.3 绘制步骤1和2的图 2 class D ...
最新文章
- Visual C#中的(ListBox)数据绑定
- 线程的创建开销大吗?线程创建开销包括哪些?线程池
- 几个想法,有兴趣的可以深入下去
- 如何使用有序GUID提升数据库读写性能
- springboot 上传文件_基于SpringBoot的文件上传
- 修手机时创意被剽窃,男子向苹果索赔7万亿!是认真的吗?
- Linux网络-MAC协议
- 关于禁用Cookie的问题以及解决办法
- NBU MSDP 配置容量为 64TB (Redhat7)
- HDU - 2567 寻梦
- CSS 绘制太阳系行星运行轨迹
- 超有趣的Python实战:将图片转成像素风~
- Protractor小结
- Android高级工程师面试必备之计算机网络基础,android体系架构
- Java核心技术卷一 -第九章:集合
- Linux安装第三方Microsoft OneDrive —— abraunegg / onedrive
- ICP算法学习记录(包括基础概念,计算推导)
- 赖霖枫:我要让身边的人资产超千万
- 大家来找茬辅助工具实现
- TMS320F28379D——DMA