ZOJ 1047 Image Perimeters

本文探讨了深度学习在计算机视觉领域的应用,包括图像分类、目标检测、语义分割等任务,展示了深度学习如何通过多层次特征提取实现复杂场景理解。

题目地址:点击打开链接

思路:挺好的一题

AC代码:

#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

int dir[4][2] = {{-1,0},{1,0},{0,-1},{0,1}};
int diagonal[4][2] = {{-1,-1},{-1,1},{1,-1},{1,1}},visit[25][25];
int m,n,count1;
char map1[25][25];

void dfs(int x,int y)
{
    int i,newx,newy;
    visit[x][y] = 1;
    for(i=0; i<4; i++)//上下左右搜
    {
        newx = x + dir[i][0];
        newy = y + dir[i][1];
        if(map1[newx][newy] == 'X' && visit[newx][newy] == 0)
            dfs(newx,newy);
        else if(map1[newx][newy] == '.')
            count1++;
    }
    for(i=0; i<4; i++)//对角线搜
    {
        newx = x + diagonal[i][0];
        newy = y + diagonal[i][1];
        if(map1[newx][newy] == 'X' && visit[newx][newy] == 0)
            dfs(newx,newy);
    }
}

int main()
{
    int i,j;
    int click_x,click_y;
    while(scanf("%d%d%d%d",&m,&n,&click_x,&click_y))
    {
        count1 = 0;
        if(m + n + click_x + click_y == 0)
            break;
        memset(map1,'.',sizeof(map1));//在外面围一圈.便于判断
        memset(visit,0,sizeof(visit));
        for(i=1; i<=m; i++)
        {
            for(j=1; j<=n; j++)
            {
                cin>>map1[i][j];
            }
        }
        dfs(click_x,click_y);
        printf("%d\n",count1);
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值