这是一道比较水的DPS的题目

题意就是求你可以走到的黑色的地板砖的块数,@代表你的起点,也是黑色的地板砖,#代表白色的,则说明你不能走,这就是一个广搜的题目

思路也很简单,如果你周围的那块地板是黑色的,而且之前没有走过,那就可以往那个地板砖走。

还有这道题的那个初始化很重要,不然很可能会WA。

 #include <stdio.h>
#include <iostream>
#include <string.h> using namespace std; int ans;
bool mark[][];
char str_1[][];
void dfs(int m,int n)
{
if(str_1[m+][n]=='.'&&mark[m+][n]){mark[m+][n]=false;ans++;dfs(m+,n);}
if(str_1[m][n+]=='.'&&mark[m][n+]){mark[m][n+]=false;ans++;dfs(m,n+);}
if(str_1[m-][n]=='.'&&mark[m-][n]){mark[m-][n]=false;ans++;dfs(m-,n);}
if(str_1[m][n-]=='.'&&mark[m][n-]){mark[m][n-]=false;ans++;dfs(m,n-);}
} int main()
{
int m,n;
while(scanf("%d%d",&m,&n),m!=&&n!=)
{
for(int i=;i<=n;i++)
scanf("%s",str_1[i]);
memset(mark,true,sizeof(mark));
ans=;
for(int i=;i<=n;i++)
for(int j=;j<m;j++)
if(str_1[i][j]=='@') dfs(i,j);
printf("%d\n",ans);
memset(str_1,,sizeof(str_1));
}
return ;
}

最新文章

  1. react.js语法为了更好的兼容可以选以下这种方法配置即可
  2. VS2013 好用的插件
  3. 通用窗口类 Inventory Pro 2.1.2 Demo1(中)
  4. svn设置提交忽略某些文件或文件夹
  5. 让TabelView视图中自定义的Toolbar固定(不随cell的移动而移动)
  6. [AS/400] Control Language
  7. protocolbuffer数据交换格式说明
  8. Segment FRAM_DATA must be defined in a segment definition option (-Z, -b or -P)
  9. Aspose.Words:如何添加另一个WORD文档中的Node对象
  10. 编程算法 - 二部图确定 代码(C)
  11. NSSortDescriptor(数组排序)
  12. bkViewer V4.9k(数码照片浏览工具)中文免费版
  13. python通过excel对数据库插入数据
  14. 【java】之算法复杂度o(1), o(n), o(logn), o(nlogn)
  15. 机器学习--Lasso回归和岭回归
  16. 第5章 Java中的锁
  17. ant 相关命令
  18. 转:centos查看实时网络带宽占用情况方法
  19. 如何停止和禁用Linux系统中的不需要的服务
  20. 接口自动化测试框架-AIM

热门文章

  1. sqlmap写文件为空之谜
  2. 巧用array_map()和array_reduce()替代foreach循环
  3. Struts2验证框架实例
  4. editplus中使用emmet?
  5. Linux关于vm虚拟机复制后无法启动网卡
  6. Todd&#39;s Matlab讲义第5讲:二分法和找根
  7. #define 中#和##的作用
  8. R语言练习(二)
  9. 自己总结的USB数据结构及其描述符
  10. Objective-C上地球坐标系到火星坐标系转换算法