AC Again hdoj 1582 搜索

AC Again

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 306    Accepted Submission(s): 84

 

Description

“AC”这个单词大概是我们 ACMers 最希望听到的回答了。不过如果把它写下来,你还能认识吗?
现在给你一幅由点阵构成的图,它代表 'A' 或 'C' 的一个字母。你的任务就是把它们识别出来。

注意:
1.笔划可能有粗有细,但是我们保证字符在外形上是肉眼可辨别的。
2.我们保证笔划是连贯的,即对于任意一个有笔划的点,在它周围八个点内有一点有笔划,这两点就是相连贯的。
3.'A','C'这两个字符可能会按90,180,270这样的角度旋转。

 

Input

本题目包含多组测试,每两组测试之间用一个或多个空行隔开。
对于每组数据,系统将给你一个肉眼可以辨别的图形表示一个字符'A' 或 'C'。
系统保证每个图形的大小在 50 * 50 一下。
输入数据只包含 ' '(空格)和'*'两种字符,其中'*'表示该点有笔划。

 

Output

对于每组数据,根据图形,在一行内输出 A 或 C。

 

Sample Input

*
* *
*****
*   *
******
*
*
* ******

 

Sample Output

A
C
做题的关键在于,不知道如何来结束输入,结束之后又不知道如何来判断是哪个之母;
我们可以观察一下,A字母中间是空的,而C不是,其实这就是一个差别啊,所以我们可以从这入手来解决这类问题;
用搜索的方法,来进行判断;
 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 using namespace std;
 5 char s[55][55];
 6 void bfs(int x,int y)
 7 {
 8     if(x<=50 && y<=50 && x>=0 && y>=0 && s[x][y]=='#')
 9     {
10         s[x][y]='*';//遇见#的话就开始进行深度搜索;
11         bfs(x+1,y);//同时把#变成*;
12         bfs(x-1,y);//但是A内部的没有变成*,依然是#,所以在下面用flag进行判断
13         bfs(x,y+1);
14         bfs(x,y-1);
15     }
16 }
17 int main()
18 {
19     int i,j,n,flag;
20     int k=0;
21     memset(s,'#',sizeof(s));
22     while(gets(s[1]+1))
23     {
24         if(s[1][1]=='\0') continue;//判断结束输入;
25         k=2;
26         while( gets(s[k]+1) && (s[k++][1] != '\0'));
27         for(i=0;i<51;i++)
28             for(j=0;j<51;j++)
29              if(s[i][j]!='*')//如果不是*则赋值成#;
30                 s[i][j]='#';
31         bfs(0,0);//开始调用
32         flag =0;
33         for(i=1;i<=50 && !flag;i++)
34         {
35             for(j=1;j<=50;j++)
36             {
37                 if(s[i][j]=='#')//如果到最后,依然存在#,则s是A
38                 {
39                     flag =1;break;
40                 }
41         }
42     }
43     if(flag)cout<<"A\n";
44     else cout<<"C\n";
45     memset(s,'#',sizeof(s));
46  }
47 return 0;
48 }


 

 

转载于:https://www.cnblogs.com/lovychen/p/3317947.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402336.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 系统应用编程——网络编程(利用TCP/IP 模型分析数据传输过程)

TCP/IP参考模型是一个非常基础&#xff0c;而且也非常重要的基础框架&#xff0c;要想入门数通这是个必须掌握的基本概念&#xff0c;本文档通过一个简单的示例&#xff0c;结合参考模型来分析一下数通的基本过程。网络环境非常简单&#xff0c;如下图所示&#xff0c;我们现在…

Python SQLAlchemy --3

本文為 Python SQLAlchemy ORM 一系列教學文&#xff1a; 刪除 學會如何查詢之後&#xff0c;就能夠進行後續的刪除、更新等操作。 同樣地&#xff0c;以幾個範例做為學習的捷徑。 123456789 user_1 User(user1, username1, password_1)user_2 User(user2, username2, passw…

C#DateTime.ToString格式化时间字符串

DateTime.ToString(string format) 中 format 参数&#xff08;区分大小写&#xff09;&#xff1a; 参数 含义 d 月中的某一天。一位数的日期没有前导零。 dd 月中的某一天。一位数的日期有一个前导零。 ddd 周中某天的缩写名称&#xff0c;在 AbbreviatedDayNam…

Wordpress中显示页面当前位置

Wordpress中显示页面当前位置 在浏览网站的时候&#xff0c;很多网站都提供了页面定位的功能&#xff0c;一般在文章的上方以这样的形式显示&#xff1a; 首页 >> 分类 >> 子分类 >> „ >> 阅读正文 那如何在wordpress中实现这样一个功能呢&#xff1…

CentOS8下 nginx+php7.4安装pdo_sqlsrv 连接 SQL SERVER2012数据库

参考自&#xff1a;https://blog.csdn.net/lwprain/article/details/109598560 关键步骤是一二三&#xff0c;结合 pecl install 正常安装(先安装dnf install unixODBC-devel)即可搞定 ------------------------------------------------------------------------------------…

ArcGIS Engine 编辑- ITask

转自原文ArcGIS Engine 编辑- ITask 下面的代码是我们定制的一个工作流-给等高线赋值 namespace EngineApplication { [Guid("5b0c0692-eaf7-4d64-9cee-c8c1afaf06f4")] [ClassInterface(ClassInterfaceType.None)] [ProgId("EditeTest.ContourTask")] pu…

Linux 系统应用编程——网络编程(TCP 协议三次握手过程)

TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议&#xff0c;提供可靠的连接服务&#xff0c;采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示: SYN ( synchronous 建立联机 ) ACK ( acknowledgement 确认 ) PSH ( push 传送…

知识管理在客户关系管理中的应用领域

CRM中的知识获取 CRM前端业务系统&#xff08;包括销售管理、营销管理、客户服务三个模块&#xff09;为与客户互动、获取客户知识提供了各种途径&#xff0c;如销售自动化系统、电子商务网站、呼叫中心、网络社区、博客等等&#xff0c;另外&#xff0c;企业还直接从外部环境、…

基于ELK的简单数据分析

原文链接&#xff1a; http://www.open-open.com/lib/view/open1455673846058.html 环境 CentOS 6.5 64位JDK 1.8.0_20Elasticsearch 1.7.3LogStash 1.5.6Kibana 4.1.4介绍 ElasticSearch是有名的开源搜索引擎&#xff0c;现在很多公司使用ELK技术栈做日志分析&#xff0c;比如…

Linux 系统应用编程——网络编程(高级篇)

一、网络超时检测 在网络通信过程中&#xff0c;经常会出现不可预知的各种情况。例如网络线路突发故障、通信一方异常结束等。一旦出现上述情况&#xff0c;很可能长时间都不会收到数据&#xff0c;而且无法判断是没有数据还是数据无法到达。如果使用的是TCP协议&#xff0c;可…

[win10] 在桌面上显示计算机、控制面板、网络

1. 右击桌面&#xff0c;选择个性化 2. 选择”主题", 点击“桌面图标设置” 3. 把想要放桌面的图标给钩上

linux下共享文件夹(windows可访问,linux也可访问)

2019独角兽企业重金招聘Python工程师标准>>> 本文是转字网上的两段&#xff0c;如果是菜鸟&#xff0c;想懂有点难度&#xff0c;我这里给点注释 在linux上共享文件夹windows下看 ******************************************* 首先给linux设一个ip&#xff0c;要和…

用nginx做了一下反向代理,得到的ip地址都是127.0.0.1

nginx反向代理配置时&#xff0c;一般会添加下面的配置&#xff1a; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; loc…

【windows】 设置开机启动程序

开始 -> 运行&#xff0c;输入&#xff1a;shell:startup 将要启动的“快捷方式”放入此目录下。重启生效&#xff01;

ssh时,密码输入框(密码输入提示)很晚才出现的解决方法

新配置了一台server&#xff08;centos6.2&#xff09;&#xff0c;发现从windows使用putty登录时&#xff0c;在输入用户名后总是很慢才提示输入密码[rootFDFS-1 ~]# ssh -V OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010发现ssh的版本较高了使用另一台linux服务器连接&…

Linux time()函数解析

time() 函数语法如下&#xff1a; 所需头文件#include <time.h>函数原型time_t time(time_t * timer)参数说明timerNULL时得到机器日历时间&#xff1b; timer时间数值时&#xff0c;用于设置日历时间&#xff1b;函数返回值机器日历时间 功能: 获取当前的系统时间&#…

开源|LightGBM:三天内收获GitHub 1000+ 星

原创 2017-01-05 LightGBM 微软研究院AI头条【导读】不久前微软DMTK(分布式机器学习工具包)团队在GitHub上开源了性能超越其他boosting工具的LightGBM&#xff0c;在三天之内GitHub上被star了1000次&#xff0c;fork了200次。知乎上有近千人关注“如何看待微软开源的LightGBM&a…

【phpstudy】在windows上开启后访问php页面显示502

phpstudy在windows上安装好后&#xff0c;会默认创建一个网站&#xff0c;而且使用了php7.3.4版本&#xff0c;但是当你把这个网站删除&#xff0c;再自己去手动(不利用它这个工具)创建一个php网站&#xff0c;会发现访问php页面会出现502错误&#xff0c;纠其原因&#xff0c;…

重设MYSQL数据库ROOT用户的密码

一、 在已知MYSQL数据库的ROOT用户密码的情况下&#xff0c;修改密码的方法&#xff1a;1、 在SHELL环境下&#xff0c;使用mysqladmin命令设置&#xff1a;mysqladmin –u root –p password “新密码” 回车后要求输入旧密码2、 在mysql>环境中,使用update命令&#xff0c…

Linux---进程调度相关命令解析

进程相关命令 1、ps 查看系统中的进程 使用方式&#xff1a;ps [options] [--help] 说明&#xff1a;显示瞬间进程 (process) 的动态 参数&#xff1a;ps的参数非常多, 在此仅列出几个常用的参数并大略介绍含义 ps命令常用用法&#xff08;方便查看系统进程&#xff09; 1&a…