dfs。
很简单的dfs,对于每个符合要求的位置搜索其周围的八个方向。
#include <iostream>
using namespace std;
const int MAX_N = 100 + 10;
char _map[MAX_N][MAX_N];
int n, m, cnt;
void _search(int i, int j)
{
if(i < 0 || i >= n || j < 0 || j >= m)
return;
if(_map[i][j] != '@')
return;
if(_map[i][j] == '@')
{
_map[i][j] = '.';
_search(i - 1, j - 1);
_search(i - 1, j);
_search(i - 1, j + 1);
_search(i, j - 1);
_search(i, j + 1);
_search(i + 1, j - 1);
_search(i + 1, j);
_search(i + 1, j + 1);
}
}
int main()
{
while(cin >> n >> m, n + m)
{
cnt = 0;
for(int i = 0; i < n; i++)
cin >> _map[i];
for(int i = 0; i < n; i++)
{
for(int j = 0; j < m; j++)
{
if(_map[i][j] == '@')
{
cnt++;
_search(i,j);
}
}
}
cout << cnt << endl;
}
return 0;
}
本文详细介绍了POJ1562 'Oil Deposits' 的解题策略,通过使用深度优先搜索(DFS)算法解决资源开采问题。文章提供了简洁的代码实现,方便读者理解并应用到类似问题中。
2995

被折叠的 条评论
为什么被折叠?



