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. UNIX网络编程读书笔记:辅助数据

    辅助数据(ancillary data)可通过调用sendmsg和recvmsg这两个函数,使用msghdr结构中的msg_control和msg_controllen这两个成员发送和接收. 辅助数据 ...

  2. from会存在潜在的陷阱

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #from会存在潜在的陷阱 #from时,可能会遇到相同变量名,变量会被悄悄覆盖掉, #但是import语句不 ...

  3. 类的专有方法(__getattr__和__setattr__、__delattr__)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #http://www.360doc.com/content/15/0413/19/12067640_4629 ...

  4. Windows 消息机制浅析

    1.       Windows 的历史 中国人喜欢以史为鉴,而事实也确实是,如果你能知道一件事情的来龙去脉,往往可以更容易地理解事物为什么会表现为当前这样的现状.所以,我的介绍性开场白通常会以一段历 ...

  5. Web Service——CXF+Spring 整合

    结合spring框架来实现CXF发布SOAP协议的服务,步骤基本相同,所不同的是的多了一些配置项,步骤如下 1. 服务端 第一步:创建web项目(引入jar包) 第二步:创建SEI接口 import ...

  6. [原创]-[WEB]代码高亮工具

    代码高亮显示,不是什么新鲜玩艺了,各种各样的插件多了去了.       一开始想在baidu空间里贴代码,用GeSHi生成的高亮HTML复制到编辑器就可以了,不过QQ空间却不行,复制过去的格式全部被清 ...

  7. ras api win7 和 win xp 遍历时的不同

    由于在调用RasEnumEntries和RasEnumConnections在xp和win7以上的操作系统中有所不同,所以在win7下正常的代码在xp不一定就可以. 主要是在win7 下可以给参数传N ...

  8. 使用EditPlus技巧,提高工作效率(附英文版、自动完成文件、语法文件下载)

    http://www.cnblogs.com/JustinYoung/archive/2008/01/14/editplus-skills.html

  9. js 停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)

    在前端开发工作中,由于浏览器兼容性等问题,我们会经常用到“停止事件冒泡”和“阻止浏览器默认行为”. 1..停止事件冒泡 JavaScript代码 //如果提供了事件对象,则这是一个非IE浏览器if ( ...

  10. iOS获取设备卸载后不变的UUID

    1.首先导入系统库Security.framework 2.创建文件SFHFKeychainUtils.h如下(复制即可): @interface SFHFKeychainUtils : NSObje ...