算法大意:如果一个图像是闭合的,那么对于其中的每一个结点来说,它至少有一个相连的出节点,也至少有一个入节点,加上自身,以它为中心的九宫格内必须至少有三个结点。因此,只需判断节点数是否都大于2即可,如果有一个结点不大于2,那么就是NO。

题意如下:

Description

Boyce have a pen, Boyce has a blank paper. Now, Boyce just uses this pen draw some curves. Please determine if these curves is closed.

Input

There are TT test cases. Include a 25×2525×25 dot matrix figure in each case, It only consists of '.' and '*' characters where the '.' character stand of white space.

Output

Just output 'Yes' or 'No' that stand of these curves is closed or not. Boyce ensures that the answer is unambiguous.

Sample Input 1

Note: For simplicity, sample input is a 5×55×5 dot matrix figure, Does not represent real input.

Copy
1
.....
.***.
.*.*.
.*.*.
.***.

Sample Output 1

Copy
Yes

Sample Input 2

Note: For simplicity, sample input is a 5×55×5 dot matrix figure, Does not represent real input.

Copy
1
.....
.***.
.*...
.***.
.***.

Sample Output 2

Copy
No

Sample Input 3

Note: For simplicity, sample input is a 5×55×5 dot matrix figure, Does not represent real input.

Copy
1
.....
...*.
..**.
.*.*.
****.

Sample Output 3

Copy
Yes

代码如下:

#include<stdio.h>
bool HasEdge(char ch[25][25],int x,int y,int n);
int main()
{
char ch[25][25];
int num,n;
int i,j,k;
scanf("%d",&num);
n=25;
getchar();
for(k=1;k<=num;k++)
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%c",&ch[i][j]);
}
getchar();
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(ch[i][j]=='*')
{
if(HasEdge(ch,i,j,n)==false)
{
printf("No\n");
goto mybreake;
}
}
}
}
printf("Yes\n");
mybreake: continue;

}
bool HasEdge(char ch[25][25],int x,int y,int n)
{
int i,j,k=0;
for(i=-1;i<=1;i++)
{
if(x+i<n&&x+i>=0)
{
for(j=-1;j<=1;j++)
{
if(y+j<n&&y+j>=0)
{
if(ch[x+i][y+j]=='*')
{
k++;
}
}
}
}
}
if(k>2)
return true;
else
return false;
}

判断图形是否封闭算法相关推荐

  1. 图像内封闭图形块分割算法

    图像内封闭图形块分割算法 大致效果展示: 原图像: ​​ 可以看见图像中含有一些不同形状和大小,颜色相同或不同的图形块 我的目标就是要将这些图形块给独立分割出来,方便作其他的统计 我们可见其二值化过后 ...

  2. 验证码 -图形图像识别的算法。http://blog.csdn.net/xtalk2008/archive/2007/11/01/1861310.aspx...

    验证码 -图形图像识别的算法.http://blog.csdn.net/xtalk2008/archive/2007/11/01/1861310.aspx 图像经过处理后,还需要进行分割,才能进行比较 ...

  3. java中对象的生存期_深入理解Java虚拟机-判断对象是否存活算法与对象引用

    我们知道Java中的对象一般存放在堆中,但是总不能让这些对象一直占着内存空间,这些对象最终都会被回收并释放内存,那么我们如何判断对象已经成为垃圾呢?这篇文章会提出两种算法解决这个问题.另外,本文还要谈 ...

  4. C#:实现判断是否为闰年算法(附完整源码)

    C#:实现判断是否为闰年算法 using System; namespace CheckLeapYear{public class Year{public Year(){}public static

  5. TCP的乱序和丢包判断(附Reordering更新算法)-理论

    又到了周末,生物钟准时在午夜让我恍惊起而长嗟,一想到TCP,恍如昨日,也不知怎么就千里迢迢之后心依旧茫然,算是拾起来的东西吧,就坐下来再写点关于TCP的东西.由于最近在追<龙珠超>,也是很 ...

  6. 文本相似度算法对比分析,判断内容相似的算法有

    有哪些算法用于比较两个字符串的相似程度 终于知道怎么判断字符串相似度了 一直不理解,为什么要计算两个字符串的相似度呢rfid.什么叫做两个字符串的相似度.经常看别人的博客,碰到比较牛的人,然后就翻了翻 ...

  7. python图像数独_Python判断有效的数独算法示例

    本文实例讲述了Python判断有效的数独算法.分享给大家供大家参考,具体如下: 一.题目 判断一个 9x9 的数独是否有效.只需要根据以下规则,验证已经填入的数字是否有效即可. 1. 数字 1-9 在 ...

  8. 漫步最优化十九——封闭算法

    想你的夜晚,\textbf{想你的夜晚,} 我在屋顶做着一个梦.\textbf{我在屋顶做着一个梦.} 我和你拥抱在明亮的月光下,\textbf{我和你拥抱在明亮的月光下,} 动人的旋律环绕在我俩身边 ...

  9. c语言 判断互质,[经典算法] 找出某数以内与其互质的数

    起因:前几天做了一个这样的题目,感觉自己变成了一个智障,来写写算法: 相关定义: ①质数定义:没有除 '1' 以外的因子的数就是质数.如:1.3.5.7.11等等. ②互质定义:两个数之间除 '1'  ...

最新文章

  1. PHP带重试功能的curl
  2. ML之监督学习算法之分类算法一 ———— k-近邻算法(最邻近算法)
  3. 危机下,你还敢提加薪吗?
  4. jest java_✅使用jest进行测试驱动开发
  5. DCL并非单例模式专用
  6. 堆排序和归并排序 java代码实现
  7. 微型计算机原理及其应用彭楚武答案第三章,微机原理及其应用_第1章.ppt
  8. Wordfence Premium 安全防护 WordPress插件
  9. 行内元素与块状元素 行内替换元素与行内非替换元素的区别
  10. VS2008整合sp1
  11. 计算机网络实验报告实验台,计算机控制实验台
  12. 如何读取 PEM 文件以获取公钥和私钥
  13. 确定不看看我的扫雷吗(C语言)
  14. 百度迟到移动互联网:寻入口级产品 文化成挑战
  15. Element UI 的日历控件,并在日期中做标注
  16. 解决Steam需要在线进行更新。请确定您的网络连接正常,然后重试。的问题
  17. 从零开始VCS+Verdi 安装过程
  18. 老九学堂 学习C++ 第十天
  19. 【Spring Security入门教学】
  20. 2019展望|二手车电商:停不下来的混战,但是大家都要准备过冬了

热门文章

  1. Camel加载classpath外的自定义components
  2. OSPF学习笔记记录
  3. VirtualBox 上的windows XP启动时蓝屏
  4. release模式ftell崩溃
  5. 输入身高、体重计算BMI指数
  6. 人工智能python零基础入门教程_人工智能零基础入门视频教程
  7. 树莓linux交叉编译
  8. AI 人工智能药物设计
  9. idea搭建vue-cli项目
  10. 简单题-不用库函数,求解一个数字的平方根