Plus from Picture

2024-09-04 23:32
文章标签 plus picture

本文主要是介绍Plus from Picture,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Plus from Picture

You have a given picture with size w×hw×h. Determine if the given picture has a single “+” shape or not. A “+” shape is described below:
A “+” shape has one center nonempty cell.
There should be some (at least one) consecutive non-empty cells in each direction (left, right, up, down) from the center. In other words, there should be a ray in each direction.
All other cells are empty.
Find out if the given picture has single “+” shape.
Input
The first line contains two integers hh and ww (1≤h1≤h, w≤500w≤500) — the height and width of the picture.
The ii-th of the next hh lines contains string sisi of length ww consisting “.” and “" where “.” denotes the empty space and "” denotes the non-empty space.
Output
If the given picture satisfies all conditions, print “YES”. Otherwise, print “NO”.
You can output each letter in any case (upper or lower).
Examples

Examples
Input
Copy
5 6
......
..*...
.****.
..*...
..*...
Output
Copy
YES
Input
Copy
3 5
..*..
****.
.*...
Output
Copy
NO
Input
Copy
7 7
.......
...*...
..****.
...*...
...*...
.......
.*.....
Output
Copy
NO
Input
Copy
5 6
..**..
..**..
******
..**..
..**..
Output
Copy
NO
Input
Copy
3 7
.*...*.
***.***
.*...*.
Output
Copy
NO
Input
Copy
5 10
..........
..*.......
.*.******.
..*.......
..........
Output
Copy
NO
Note

In the first example, the given picture contains one "+".

In the second example, two vertical branches are located in a different column.

In the third example, there is a dot outside of the shape.

In the fourth example, the width of the two vertical branches is 22.

In the fifth example, there are two shapes.

In the sixth example, there is an empty space inside of the shape.

一开始以为是一道dfs题然后找几个区域块的那种题后来仔细读题发现是一道可以暴力的题 题意一个二维字符数组 要求这个二维数组里只存在一个构成”十“形状的图像.表示空白*来表示填充的字符。 思路 既然要只存在一个十那么我们只需要找到一个十并把它清除掉 如果说还是存在*那么就是不符合题意因为这个图型里只允许存在一个*组成的十并且没有其它多余的*所以我们只需要找到十字的中心然后把这个十删除 然后再便利一次如果还存在*那么就不和题否则就合题
#include <iostream>
#include <cmath>
#include<set>
#include <algorithm>
#include<string>
#include<string.h>
using namespace std;
int a[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
char v[1000][1000];
void clearr(int x,int y)
{v[x][y]='.';for(int i=0;i<4;i++){int x1=x,y1=y;while(v[x1+a[i][0]][y1+a[i][1]]=='*'){v[x1+a[i][0]][y1+a[i][1]]='.';x1+=a[i][0],y1+=a[i][1];}}}
int main()
{string s;char ss[10000];int n,m,b[1000],flag1=0;while(cin>>m>>n){memset(v,0,sizeof(v));for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){cin>>v[i][j];}}flag1=1;for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){if(v[i][j]=='*'&&v[i+1][j]=='*'&&v[i-1][j]=='*'&&v[i][j+1]=='*'&&v[i][j-1]=='*'&&i+1<=m&&i-1>=1&&j+1<=n&&j-1>=1){flag1=0;clearr(i,j);goto l;}}}l:int flag=0;for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){if(v[i][j]=='*'){flag=1;}}}if(flag1==1||flag)cout<<"NO"<<endl;elsecout<<"YES"<<endl;}}

这篇关于Plus from Picture的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1137343

相关文章

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

Adblock Plus官方规则Easylist China说明与反馈贴(2015.12.15)

-------------------------------特别说明--------------------------------------- 视频广告问题:因Adblock Plus的局限,存在以下现象,优酷、搜狐、17173黑屏并倒数;乐视、爱奇艺播放广告。因为这些视频网站的Flash播放器被植入了检测代码,而Adblock Plus无法修改播放器。 如需同时使用ads

【C++ Primer Plus习题】12.2

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "String.h"using namespace std;int main(){String s1(" and I am a

Mybatis Plus快速重构真批量sql入库操作

Mybatis快速重构真批量sql入库操作 基本思路 重构mybatis默认方法saveBatch和saveOrUpdateBatch的实现 基本步骤 真批量保存实现类InsertBatchMethod真批量更新实现类MysqlInsertOrUpdateBath注册InsertBatchMethod和MysqlInsertOrUpdateBath到EasySqlInjector注册Eas

leetcode#66. Plus One

题目 Given a non-negative integer represented as a non-empty array of digits, plus one to the integer. You may assume the integer do not contain any leading zero, except the number 0 itself. The digi

【C++ Primer Plus习题】12.1

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "Cow.h"using namespace std;int main(){Cow c1;Cow c2("老母牛", "喝奶"

《C Primer Plus》第10 章复习题和编程练习

目录 一、复习题二、编程练习 一、复习题 1. 下面的程序将打印什么内容? #include <stdio.h>int main(){int ref[] = {8, 4, 0 ,2};int *ptr;int index;for (index = 0, ptr = ref; index < 4; index++, ptr++){printf("%d %d\n", ref[in

MyBatis-Plus 框架 QueryWrapper UpdateWrapper 方法修复sql注入漏洞事件

什么是漏洞? 漏洞是指软件、系统或网络中存在的安全弱点或错误,这些弱点可能导致系统遭受攻击或被不当使用。在计算机安全领域,漏洞通常源于编程错误、设计缺陷或配置失误。 对于对象关系映射(ORM)框架来说,漏洞通常指的是设计或实施中的安全问题,这些问题可能让应用程序面临SQL注入攻击的风险。 SQL 注入漏洞 如果ORM框架在执行SQL操作时没有正确过滤或转义用户输入,攻击者可以利用输入的恶意数据

【C++ Primer Plus习题】11.6

问题: 解答: main.cpp #include <iostream>#include "Stonewt.h"using namespace std;const int SIZE = 6;int main(){Stonewt stone_arr[SIZE] = { 253.6,Stonewt(8,0.35),Stonewt(23,0) };double input;Ston

滚雪球学MyBatis-Plus(12):高级功能

前言 在上期内容中,我们详细探讨了 MyBatis Plus 的多数据源配置。通过多数据源配置,我们可以连接多个数据库,并在运行时动态切换数据源,显著提高应用程序的灵活性和扩展性。我们详细介绍了多数据源配置的实现方法,并通过实例演示了如何在项目中应用这些技术。 本期内容将深入探讨 MyBatis Plus 的高级功能,包括自定义 SQL 注解、批量操作以及数据加密与解密。通过这些高级功能,你将