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