问题链接:HDU5706 GirlCat。

虽然是一个DFS问题,数据表示简单,用C语言编写程序。

给二维字符数组一个边界,程序逻辑就简洁多了,也许可以达到空间换时间的效果,空间换可阅读性是做到了。

C语言的二维数组是按行存放的,其每一行的首地址是可以获得的。有了边界之后,字符串放的位置需要简单调整一下。程序中是+1。

程序需要做的具有通用性,这也是值得注意的地方。本题是搜索“girl”和“cat”,如果换两个单词程序基本不用改,才能说程序有通用性。

功能能够封装则要尽量封装。C语言程序的功能要封装到函数里。

使用字符指针相信是一个好主意。

AC程序如下:

/* HDU5706 GirlCat */#include <stdio.h>
#include <memory.h>char a[1000+2][1000+2];
char p1[] = "girl";
char p2[] = "cat";
int count, count2;void dfs(int row, int col, char *p)
{if(a[row][col] == *p) {if(*(p+1) == '\0')count++;else {p++;dfs(row-1, col, p);       // northdfs(row, col+1, p);       // eastdfs(row+1, col, p);       // southdfs(row, col-1, p);       // west}}
}int main(void)
{int t, n, m, i, j;scanf("%d", &t);while(t--) {// 二维字符数组清零memset(a, 0, sizeof(a));// 读入数据:二维字符数组,scanf("%d%d", &n, &m);for(i=1; i<=n; i++)scanf("%s", a[i]+1);count = 0;for(i=1; i<=n; i++)for(j=1; j<=m; j++)dfs(i, j, p1);      // 匹配girl并且计数count2 = count;count = 0;for(i=1; i<=n; i++)for(j=1; j<=m; j++)dfs(i, j, p2);      // 匹配cat并且计数// 输出结果printf("%d %d\n", count2, count);}return 0;
}

转载于:https://www.cnblogs.com/tigerisland/p/7564661.html

HDU5706 GirlCat相关推荐

  1. TYUT-A专题题解(二)

    TYUT-A专题题解(一) TYUT-A专题题解(二) 36暴力枚举 AOJ0008 Sum of 4 Integers[暴力]_海岛Blog-CSDN博客 HDU1407 测试你是否和LTC水平一样 ...

  2. HDU-5706(DFS)

    题目链接:acm.hdu.edu.cn/showproblem.php?pid=5706 GirlCat Time Limit: 2000/1000 MS (Java/Others) Memory L ...

  3. 【HDU - 5706】GirlCat(bfs)

    题干: As a cute girl, Kotori likes playing ``Hide and Seek'' with cats particularly.  Under the influe ...

  4. dfs-girlcat

    girlcat 题意:问所给的矩阵中有几个girl单词有几个cat单词 思路:搜索,注意在写dfs(int a,int b,int c)想表示c++,一定不能dfs(a,b,c++),不能放++ #i ...

  5. 巴卡斯杯 中国大学生程序设计竞赛 - 女生专场(重现)解题思路

    此文章可以使用目录功能哟↑(点击上方[+]) 经过这么一次女生赛,告诉我们千万不要小瞧女生,不然会死得很惨,orz... 链接→"巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场( ...

最新文章

  1. centos 7安装 navicat
  2. CVPR 2019 | 人脸照片秒变艺术肖像画:清华大学提出APDrawingGAN
  3. 预处理器命令必须作为第一个非空白空间启动_第三章 图形处理器(上)
  4. 玹疯:这些年我走过的弯路
  5. unity json mysql_unity——json总结
  6. 955. 删列造序 II
  7. Uber无人车为何危险:长期忽视模拟器,只在意路测 | 内部声音
  8. 猎洞高手Orange Tsai 亲自讲解 ProxyShell write-up
  9. TroubleShooting Hyper-V 虚拟机因磁盘配置问题无法启动
  10. Java将byte流转换成zip文件_java zip文件的压缩与解压
  11. Windows10 查看电脑关机时间(提交忘记打卡申请必备)
  12. 新浪微博接口在safri下的bug
  13. Codeforces Problem-1591B Array Eversion
  14. 【Shell案例】【for循环、seq生成】3、输出7的倍数
  15. 全球首个5G火车站落户上海虹桥!
  16. 玄武科技——前端面试题总结
  17. leetcode 1796
  18. windows需要关闭的大量读写硬盘的服务
  19. 2022年R2移动式压力容器充装考试题库及模拟考试
  20. 【无机纳米材料科研制图——OriginLab 0201】Origin光谱图、曲线图绘制

热门文章

  1. Lex-BERT:超越FLAT的中文NER模型?
  2. 西安后宰门小学_陈洪杰:“数学魔术”课程校本化的价值与意义 || 为西安后宰门小学点个赞...
  3. java语言和www技术 阶段性测试一_2018春季【贵州电大】[JAVA语言与WWW技术(省)]04任务阶段性测验(答案)...
  4. linux用8m内存读取1g日志,检查 Linux 中内存使用状况的 8 条命令
  5. linux中useradd的文件路径,linux的useradd命令详细解释
  6. CentOS7系统 yum 安装报错
  7. 2021年软考考试时间公布
  8. Error querying database.Cause:java.sql.SQLSyntaxErrorException:ORA-00911:invalid character
  9. Time to First Byte(TTFB)与Web性能优化
  10. AndroidStudio跑起来第一个App时新手遇到的那些坑