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不是,其实这就是一个差别啊,所以我们可以从这入手来解决这类问题;
用搜索的方法,来进行判断;

 #include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
char s[][];
void bfs(int x,int y)
{
if(x<= && y<= && x>= && y>= && s[x][y]=='#')
{
s[x][y]='*';//遇见#的话就开始进行深度搜索;
bfs(x+,y);//同时把#变成*;
bfs(x-,y);//但是A内部的没有变成*,依然是#,所以在下面用flag进行判断
bfs(x,y+);
bfs(x,y-);
}
}
int main()
{
int i,j,n,flag;
int k=;
memset(s,'#',sizeof(s));
while(gets(s[]+))
{
if(s[][]=='\0') continue;//判断结束输入;
k=;
while( gets(s[k]+) && (s[k++][] != '\0'));
for(i=;i<;i++)
for(j=;j<;j++)
if(s[i][j]!='*')//如果不是*则赋值成#;
s[i][j]='#';
bfs(,);//开始调用
flag =;
for(i=;i<= && !flag;i++)
{
for(j=;j<=;j++)
{
if(s[i][j]=='#')//如果到最后,依然存在#,则s是A
{
flag =;break;
}
}
}
if(flag)cout<<"A\n";
else cout<<"C\n";
memset(s,'#',sizeof(s));
}
return ;
}

AC Again hdoj 1582 搜索的更多相关文章

  1. AC自动机 HDOJ 2222 Keywords Search

    题目链接 题意:每个文本串的出现次数 分析:入门题,注意重复的关键字算不同的关键字,还有之前加过的清零.   新模板,加上last跑快一倍 #include <bits/stdc++.h> ...

  2. AC自动机 HDOJ 5384 Danganronpa

    题目传送门 /* 题意:多个文本串,多个模式串在每个文本串出现的次数 AC自动机:这就是一道模板题,杭电有道类似的题目 */ /************************************ ...

  3. BZOJ 1195: [HNOI2006]最短母串 AC自动机+状压+搜索

    思路比较直接. 由于 $n$ 很小,直接定义 $f[i][j]$ 表示当前在自动机中的节点 $i,$ 被覆盖串的集合为 $j$ 的方案数. #include <bits/stdc++.h> ...

  4. ACM 暴力搜索题 题目整理

    UVa 129 Krypton Factor 注意输出格式,比较坑爹. 每次要进行处理去掉容易的串,统计困难串的个数. #include<iostream> #include<vec ...

  5. HDOJ的题目分类

    模拟题, 枚举 1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 10 ...

  6. hdoj分类

    http://blog.csdn.net/lyy289065406/article/details/6642573 模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 ...

  7. HDOJ题目分类

    模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 104 ...

  8. BZOJ 2938 [Poi2000]病毒(AC自动机)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2938 [题目大意] 给出一些病毒串,问是否存在不包含任何病毒串的无限长的字符串 [题解 ...

  9. [一本通学习笔记] AC自动机

    AC自动机可以看作是在Trie树上建立了fail指针,在这里可以看作fail链.如果u的fail链指向v,那么v的对应串一定是u对应串在所给定字符串集合的后缀集合中的最长的后缀. 我们考虑一下如何实现 ...

随机推荐

  1. SVN diff 笔记

    SVN diff命令在实际中经常使用,在此记录使用点滴. #对比工作文件与缓存在.svn的“原始”拷贝: svn diff #显示工作文件和服务器版本2的不同: svn diff -r 2 #显示分支 ...

  2. 使用Nginx Upstream 部署 OpenERP

    Openerp 6.1 使用werkzeug 作为web服务的框架,性能比之前的cherrypy 有了很大的改善.但无论是 werkzeug 还是cherrypy ,都不是专门的web服务器.通常的做 ...

  3. 在Loadrunner中如何用system函数执行系统命令

    前提: windows 系统 实现功能:用 LR 中的system函数执行系统命令 相关功能:在LR中利用C函数建立文件,写文件,读文件. 主要相关函数:sprintf/fopen/fgetc/fre ...

  4. office-word去掉效验红色的波浪线

         工作中,总是能发现不足.能再次学习到知识和经验!

  5. Android 线性布局(LinearLayout)相关官方文档 - 指南部分

    Android 线性布局(LinearLayout)相关官方文档 - 指南部分 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用 ...

  6. 《Python数据分析》-Ch01 Python 程序库入门

    Ch01 Python 程序库入门   1.1 一些简要介绍: NumPy 是一个基础性的Python库,为我们提供了常用的数值数组和函数. SciPy是Python的科学计算库,对NumPy的功能进 ...

  7. 【LeetCode】104. Maximum Depth of Binary Tree (2 solutions)

    Maximum Depth of Binary Tree  Given a binary tree, find its maximum depth. The maximum depth is the ...

  8. Windows系统开机硬盘自检问题解决

    http://blog.sina.com.cn/s/blog_49063a0b0100tf7y.html硬盘开机自检通常都是由于计算机使用者的不合理使用电脑造成的,比如非常正关机,或者遭到病毒侵袭,抑 ...

  9. eclipse 快捷键设置

    “window→Preferences→General→Keys→你想设置的快捷键"       PS(Postscript)我常用的快捷键: 撤销 Undo Ctrl+Z 还原 Redo ...

  10. Android学习系列(3)--App自动更新之自定义进度视图和内部存储

    友好的视觉感知和稳定的不出错表现,来自于我们追求美感和考虑的全面性,博客园从技术的角度,一直我都很欣赏.这篇文章是android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用. 这 ...