A - Red and Black ZOJ - 2165
程序员文章站
2022-04-01 09:44:47
...
题意
有一个长方形的房间,覆盖着正方形的瓷砖。每个磁贴都被着色为红色或黑色。一个人站在黑色的瓷砖上。他可以从一个图块移动到四个相邻图块之一。但是他不能在红色瓷砖上移动,只能在黑色瓷砖上移动。
编写一个程序,通过重复上述动作来计算他可以到达的黑色瓷砖的数量。
解析 普通的dfs,暴力输出就可
#include
#include
using namespace std;
#define MAX_W 20
#define MAX_H 20
int i, j, sum;
char ch[MAX_W][MAX_H];
void dfs(int x, int y)
{
ch[x][y] = '#';//注意可以不用标记,直接将走过的变为红砖就可
int k, h;
for (k = -1; k <= 1; k++)
for (h = -1; h <= 1; h++)
{
int xx = x + h;
int yy = y + k;
if (xx >0 && yy >0 && xx <= i && yy <= j && ch[xx][yy] == '.')//越界与黑砖
{ sum++;
dfs(xx, yy);
}
}
return;
}
int main()
{
while (1)
{
sum = 0;
cin >> j >> i;
if (i == 0 && j == 0)
break;
else{
for (int k = 1; k <= i; k++)
for (int h = 1; h <= j; h++)
{
cin >> ch[k][h];
}
for (int k = 1; k <= i; k++)
for (int h = 1; h <= j; h++)
{
if (ch[k][h] == '@')
{
dfs(h, k);
}
}
cout << sum << endl;
}
}
return 0;
}
上一篇: PHP多维数组指定多字段排序的示例
推荐阅读
-
POJ 1979 Red And Black 红与黑DFS深搜 AC代码C++
-
ZOJ4048 Red Black Tree(The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online,二分+LCA)
-
Red and Black HDU 1312
-
Red and Black(DSF)
-
基础数据结构和算法十一:Red-black binary search tree
-
Red and Black——个人c++解
-
Red and Black-----BFS(水题)
-
dfs/bfs--Red and Black
-
POJ1979 Red and Black【DFS】
-
Red and Black