博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ZOJ 2165 Red and Black
阅读量:4309 次
发布时间:2019-06-06

本文共 2843 字,大约阅读时间需要 9 分钟。

1.采用dfs:

#include <iostream>

#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
char map[25][25];
int count = 1;
int r,c;
int dx[4] = {1,-1,0,0};
int dy[4] = {0,0,1,-1};
bool judge(int x,int y)
{
    if(x<0 || x>= r || y < 0 ||y>=c)
        return 0;
    return 1;
}
void dfs(int x,int y)
{
    map[x][y] = '#';
    int nx = 0;
    int ny = 0;
    for(int i = 0 ; i < 4; i++)
    {
        nx = x + dx[i];
        ny = dy[i] + y;
        if(!judge(nx,ny))
            continue;
        if(map[nx][ny] == '.')
        {
            count++;
            dfs(nx,ny);
        }
    }
}
int main()
{
    //freopen("test.in", "r", stdin);
    while(cin>>c>>r && r&&c)
    {
        count = 1;
        int x0,y0;
        for(int i = 0; i < r; i++ )
        {
            for(int j = 0 ; j < c; j++)
            {
                cin>>map[i][j];
                if(map[i][j] == )
                {
                    x0 = i;
                    y0 = j;
                }
            }
        }
        dfs(x0,y0);
        cout<<count<<endl;
    }
    return 0;
}

 

2.bfs:

#include 
#include
using namespace std;structnode {
int r; int l;};int m, n, sr, sl;int dir[2][4] = {
{
-1, 1, 0, 0}, {
0, 0, -1, 1}};int visited[20][20];int BFS();int main(){
int i, j; char str[21]; while(cin >> m >> n) {
if(m == 0 || n == 0) {
break; } for(i = 0; i < n; i++) {
cin >> str; for(j = 0; j < m; j++) {
if(str[j] == '@') {
sr = i; sl = j; visited[i][j] = 1; } else if(str[j] == '.') {
visited[i][j] = 0; } else {
visited[i][j] = 1; } } } int count = BFS(); cout << count << endl; } return 0; } int BFS() {
int i, count; queue
Q; nodeN, temp; N.r = sr; N.l = sl; count = 1; Q.push(N); while(!Q.empty()) {
temp = Q.front(); Q.pop(); for(i = 0; i < 4; i++) {
N = temp; N.r += dir[0][i]; N.l += dir[1][i]; if(N.r < 0 || N.r >= n || N.l < 0 || N.l >= m) {
continue; } else {
if(!visited[N.r][N.l]) {
count++; visited[N.r][N.l] = 1; Q.push(N); } } } } return count;}

 

 

转载于:https://www.cnblogs.com/T8023Y/p/3210564.html

你可能感兴趣的文章
记录一次redis故障
查看>>
最近公共祖先(lca) hdu 2586
查看>>
安卓开发笔记——关于AsyncTask的使用
查看>>
spout详解
查看>>
一个md5加密的工具类,用的虚拟机的包,不需要额外导包
查看>>
centos7在VMware下配置网络连接
查看>>
希尔排序 堆排序 归并排序
查看>>
ckplayer插件播放视频
查看>>
寻找最好的笔记软件:三强篇(EverNote、Mybase、Surfulater) (v1.0)
查看>>
时间长了不用,什么都忘了
查看>>
Eclipse 配置Activiti插件
查看>>
正则符号
查看>>
mysql事件
查看>>
小米系统获取root权限的完整教程
查看>>
hdu1114Piggy-Bank(完全背包)
查看>>
迷宫城堡 HDU - 1269 (强连通分量)
查看>>
eigenface资料整合
查看>>
jquery tree的使用
查看>>
JS构造函数、原型对象、隐含参数this
查看>>
delegate 与 event 不得不说的关系~
查看>>