AC Again

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

Problem 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

Author
linle

Source
冬练三九之二

问题链接:HDU1582 AC Again
问题简述:(略)
问题分析
    需要注意文字顶天立地的情况,所以需要上下左右扩展一圈。A和C的差异在于A围起来的空格片数为2,而C所围起来的空格只有一片。
    数据的读入有2种方法,前一种比较简单一些。
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C++语言程序如下:

/* HDU1582 AC Again */#include <bits/stdc++.h>const int N = 50 + 2;
char b[N][N];void dfs(int r, int c)
{if(r < 0 || r > N || c < 0 || c > N) return;if(b[r][c] == '*') return;b[r][c] = '*';dfs(r - 1, c);dfs(r + 1, c);dfs(r, c - 1);dfs(r, c + 1);
}int readin()
{memset(b, ' ', sizeof(b));while(gets(b[1] + 1)) {if(b[1][1] = '\0') continue;for(int k = 2; gets(b[k] + 1); k++)if(b[k][1] == '\0') break;}return 1;
}int main()
{memset(b, ' ', sizeof(b));while(gets(b[1] + 1)) {if(b[1][1] = '\0') continue;for(int k = 2; gets(b[k] + 1); k++)if(b[k][1] == '\0') break;int cnt = 0;for(int i = 0; i <= N; i++)for(int j = 0; j <= N; j++)if(b[i][j] == ' ') {cnt++;dfs(i, j);}printf(cnt == 2 ? "A\n" : "C\n");memset(b, ' ', sizeof(b));}return 0;
}

AC的C++语言程序如下:

/* HDU1582 AC Again */#include <bits/stdc++.h>const int N = 50 + 2;
char b[N][N];void dfs(int r, int c)
{if(r < 0 || r > N || c < 0 || c > N) return;if(b[r][c] == '*') return;b[r][c] = '*';dfs(r - 1, c);dfs(r + 1, c);dfs(r, c - 1);dfs(r, c + 1);
}int readin()
{memset(b, ' ', sizeof(b));char c;if((c = getchar()) == EOF) return 0;else b[1][1]=c;for(int j=2; (c = getchar()) != '\n'; j++) b[1][j] = c;int j = 0;for(int i = 2; j != 1; i++)for(j = 1;  (c = getchar()) != '\n' && c != EOF; j++) b[i][j] = c;return 1;
}int main()
{while(readin()) {int cnt = 0;for(int i = 0; i <= N; i++)for(int j = 0; j <= N; j++)if(b[i][j] == ' ') {cnt++;dfs(i, j);}printf(cnt == 2 ? "A\n" : "C\n");}return 0;
}

HDU1582 AC Again【DFS】相关推荐

  1. Bailian2815 城堡问题【DFS】

    2815:城堡问题 总时间限制: 1000ms 内存限制: 65536kB 描述 1 2 3 4 5 6 7 ############################# 1 # | # | # | | ...

  2. Bailian2816 红与黑【DFS】

    2816:红与黑 总时间限制: 1000ms 内存限制: 65536kB 描述 有一间长方形的房子,地上铺了红色.黑色两种颜色的正方形瓷砖.你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动.请写一 ...

  3. NUC1158 Lake Counting【DFS】

    Lake Counting 时间限制: 1000ms 内存限制: 65536KB 通过次数: 1总提交次数: 1 问题描述 Due to recent rains, water has pooled ...

  4. NUC1399 Sum It Up【DFS】

    Sum It Up 时间限制: 1000ms 内存限制: 65535KB 通过次数: 1总提交次数: 1 问题描述 Given a specified total t and a list of n ...

  5. HDU1181 变形课【DFS】(废除)

    新题解参见:HDU1181 变形课[DFS+关系闭包+bitset] 变形课 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 13107 ...

  6. NUC1333 Knight Moves【DFS】

    Knight Moves 时间限制: 1000ms 内存限制: 65535KB 问题描述 A friend of you is doing research on the Traveling Knig ...

  7. 【DFS】巧妙取量的倒油问题

    题目描述 [题目描述]  有三个容器,容量分别为 a,b,c(a> b > c ),一开始a装满油,现在问是否只靠abc三个容器量出k升油.如果能就输出"yes",并且 ...

  8. [kuangbin]专题三 Dancing Links Squiggly Sudoku HDU - 4069【DFS】【精确覆盖】

    [题目描述] Today we play a squiggly sudoku, The objective is to fill a 9*9 grid with digits so that each ...

  9. 【DFS】不撞南墙不回头—深度优先搜索算法[Deep First Search]

    今天上午听到,那个非常6+1的李咏先生因癌症去世 DFS算法的基本模型 深度下,不撞南墙不回头,就是一直往后找,知道没有路了,向后返回. 想起一首民谣,<可能否>--木小雅 https:/ ...

最新文章

  1. 牛听听 总是获取音频流出错_【伤感听听|推荐】大度 什么
  2. xml文件格式例如以下
  3. scp 是我小看了你-基于密钥传输!
  4. php 多线程处理redis,redis的多线程
  5. C++ auto_ptr存在的问题
  6. oracle数据库字符编码utf-8改为ZHS16GBK
  7. ubuntu中的tftp用法
  8. 腾讯文档 - 入门使用手册
  9. android通过json生成视图
  10. matlab编译器安装在哪里,MATLAB的m文件编辑器在哪里?
  11. JavaScript 学习计划
  12. 使用web.xml控制Web应用的行为
  13. 判断浏览器是否最小化
  14. pdfminer识别pdf无法识别问题
  15. Auto MPG 汽车油耗预测(tensorflow深度学习龙书笔记)
  16. android 4k手机屏幕分辨率,安卓手机都4K屏了 真的有必要?
  17. SQL语句注入的全过程
  18. 链路层--->ETH(以太网)协议
  19. joinus计算机怎么弄游戏,美国us计算机专业学校排名:joinus学生计算机如何消除sci...
  20. SQL语句:分组查询

热门文章

  1. 2018-07-25 异想天开
  2. Ubuntu 下 svn 服务器的安装配置
  3. GDAL C#中文路径,中文属性名称乱码问题
  4. php拼音模糊搜索,前端拼音模糊搜索
  5. 使用YAML创建一个 Kubernetes Depolyment
  6. 2D动作游戏开发与实现(翻译) .
  7. 去掉图片黑背景输出为透明png(算法和工具)
  8. 使用jQuery Mobile设计移动设备网站
  9. How to use the Feathers ScreenNavigator component
  10. 行列式算法c语言,新手作品:行列式计算C语言版