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
现在给你一幅由点阵构成的图,它代表 'A' 或 'C' 的一个字母。你的任务就是把它们识别出来。
注意:
1.笔划可能有粗有细,但是我们保证字符在外形上是肉眼可辨别的。
2.我们保证笔划是连贯的,即对于任意一个有笔划的点,在它周围八个点内有一点有笔划,这两点就是相连贯的。
3.'A','C'这两个字符可能会按90,180,270这样的角度旋转。
Input
对于每组数据,系统将给你一个肉眼可以辨别的图形表示一个字符'A' 或 'C'。
系统保证每个图形的大小在 50 * 50 一下。
输入数据只包含 ' '(空格)和'*'两种字符,其中'*'表示该点有笔划。
Output
Sample Input
Sample Output
#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 搜索的更多相关文章
- AC自动机 HDOJ 2222 Keywords Search
题目链接 题意:每个文本串的出现次数 分析:入门题,注意重复的关键字算不同的关键字,还有之前加过的清零. 新模板,加上last跑快一倍 #include <bits/stdc++.h> ...
- AC自动机 HDOJ 5384 Danganronpa
题目传送门 /* 题意:多个文本串,多个模式串在每个文本串出现的次数 AC自动机:这就是一道模板题,杭电有道类似的题目 */ /************************************ ...
- BZOJ 1195: [HNOI2006]最短母串 AC自动机+状压+搜索
思路比较直接. 由于 $n$ 很小,直接定义 $f[i][j]$ 表示当前在自动机中的节点 $i,$ 被覆盖串的集合为 $j$ 的方案数. #include <bits/stdc++.h> ...
- ACM 暴力搜索题 题目整理
UVa 129 Krypton Factor 注意输出格式,比较坑爹. 每次要进行处理去掉容易的串,统计困难串的个数. #include<iostream> #include<vec ...
- HDOJ的题目分类
模拟题, 枚举 1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 10 ...
- hdoj分类
http://blog.csdn.net/lyy289065406/article/details/6642573 模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 ...
- HDOJ题目分类
模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 104 ...
- BZOJ 2938 [Poi2000]病毒(AC自动机)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2938 [题目大意] 给出一些病毒串,问是否存在不包含任何病毒串的无限长的字符串 [题解 ...
- [一本通学习笔记] AC自动机
AC自动机可以看作是在Trie树上建立了fail指针,在这里可以看作fail链.如果u的fail链指向v,那么v的对应串一定是u对应串在所给定字符串集合的后缀集合中的最长的后缀. 我们考虑一下如何实现 ...
随机推荐
- 恭喜您成为2014年度Microsoft MVP!
- SoapUI 测试接口演示
SoapUI 测试接口演示 CreateTime--2018年4月2日15:54:05 Author:Marydon 以webservice为例 1.安装: SoapUI-x64-5.4.0-E ...
- Eclipse常用且不易记快捷键
大小写转换:CTRL+SHIFT+X,Y 复制行:CTRL+ALT+↑,↓(部分无法使用) 查看继承关系:CTRL+T 直接查看系统源码:CTRL+SHIFT+T 查看所有快捷键:CTRL+SHIFT ...
- Mustache模板引擎
Mustache是一个Logic-Less模板引擎,即:零逻辑引擎,原因在于它只有标签,没有流程控制语句,这是它与其它模板引擎不同的地方. Mustache小巧玲珑,几乎用各种语言都实现了一遍. Mu ...
- 推荐系统之 BPR 算法及 Librec的BPR算法实现【1】
[推荐系统之 BPR 算法] 1.关于BPR的论文原文: BPR: Bayesian Personalized Ranking from Implicit Feedback 2.参考1:论文快读 - ...
- JS数据交互:动态从数据库中获取数据填充Select
JavaScript代码: $(document).ready(function () { getIntype(); });function getIntype(){ $.ajax({ type:&q ...
- Oracle用同义词可以不使用用户名.表名查询表 Oracle 创建synonym
一般在PL/SQL下,Oracle 用户查询其他用户的表一定要使用user.table格式才能查询,每次用户名.表名嫌麻烦的话.可以使用同义词,意思将user.table访问格式改成table格式即可 ...
- HDU 2604 Queuing (矩阵乘法)
Queuing Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- vsftp添加用户及测试
上一篇我们讲了vsftp安装以及配置,这篇我们讲下如何添加用户,然后我们测试一下,看看是否成功. 首先说下添加用户,如图执行命令即可: 这里简单解释一下:第一条命令是添加用户,第二条命令是设置用户密码 ...
- PLSQL_自治事务和嵌套事物的理解和用法(案例)
2014-06-01 Created By BaoXinjian