#include<iostream>
#define MAXN 30
using namespace std; char _m[MAXN][MAXN];
bool mark[MAXN][MAXN];
int dir_f[][] = {,,,-,,,-,};
int dir_l[][] = {,,,-,-,,-,-};
int ans;
int r;
int c;
void DFS(int g_i,int g_j);
int main()
{
//freopen("acm.acm","r",stdin);
int i;
int j;
int g_r;
int g_c;
while(cin>>r>>c>>g_r>>g_c)
{
memset(mark,false,sizeof(mark));
if(!r && !c && !g_r && !g_c)
{
break;
}
for(i = ; i < r; ++ i)
{
for(j = ; j < c; ++ j)
{
cin>>_m[i][j];
}
}
-- g_r;
-- g_c;
ans = ;
mark[g_r][g_c] = true;
DFS(g_r,g_c);
cout<<ans<<endl;
}
} void DFS(int g_i,int g_j)
{
// cout<<g_i<<" "<<g_j<<endl;
int i;
int j;
int tem_i;
int tem_j;
for(i = ; i < ; ++ i)
{
if(dir_f[i][] + g_i >= && dir_f[i][] + g_i < r && dir_f[i][] + g_j>= && dir_f[i][] + g_j < c && _m[dir_f[i][] + g_i][dir_f[i][] + g_j] == 'X' && !mark[dir_f[i][] + g_i][dir_f[i][] + g_j])
{
mark[dir_f[i][] + g_i][dir_f[i][] + g_j] = true;
DFS(dir_f[i][] + g_i,dir_f[i][] + g_j);
}
else if(!mark[dir_f[i][] + g_i][dir_f[i][] + g_j])
{
++ ans;
}
}
for(i = ; i < ; ++ i)
{
tem_i = dir_l[i][] + g_i;
tem_j = dir_l[i][] + g_j;
if(tem_i >= && tem_i < r && tem_j >= && tem_j < c && _m[tem_i][tem_j] == 'X' && !mark[tem_i][tem_j])
{
mark[tem_i][tem_j] = true;
DFS(tem_i,tem_j);
}
}
}

关注我的公众号,当然,如果你对Java, Scala, Python等技术经验,以及编程日记,感兴趣的话。

技术网站地址: vmfor.com

POJ 1111的更多相关文章

  1. [POJ]1111 Image Perimeters

    Description Technicians in a pathology lab analyze digitized images of slides. Objects on a slide ar ...

  2. POJ 1111(数字很吉利嘛) 简单BFS

    Image Perimeters Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 8594 Accepted: 5145 Desc ...

  3. poj1111 DFS

    J - 搜索 Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:10000KB     64bit I ...

  4. POJ 题目分类(转载)

    Log 2016-3-21 网上找的POJ分类,来源已经不清楚了.百度能百度到一大把.贴一份在博客上,鞭策自己刷题,不能偷懒!! 初期: 一.基本算法: (1)枚举. (poj1753,poj2965 ...

  5. POJ 3216 最小路径覆盖+floyd

    Repairing Company Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 6646   Accepted: 178 ...

  6. poj 题目分类(1)

    poj 题目分类 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K--0.50K:中短代码:0.51K--1.00K:中等代码量:1.01K--2.00K:长代码:2.01 ...

  7. POJ题目分类(按初级\中级\高级等分类,有助于大家根据个人情况学习)

    本文来自:http://www.cppblog.com/snowshine09/archive/2011/08/02/152272.spx 多版本的POJ分类 流传最广的一种分类: 初期: 一.基本算 ...

  8. POJ 1426 Find The Multiple --- BFS || DFS

    POJ 1426 Find The Multiple 题意:给定一个整数n,求n的一个倍数,要求这个倍数只含0和1 参考博客:点我 解法一:普通的BFS(用G++能过但C++会超时) 从小到大搜索直至 ...

  9. POJ 1700 Crossing River (贪心)

    Crossing River Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9585 Accepted: 3622 Descri ...

随机推荐

  1. Tomcat之Windows环境下配置多个服务器

    在应对多项目多端口的情况配置一个服务器是远不能满足开发条件的.例如微信公众号回调域名只接受80端口,而其他项目一般为默认的8080或者自定义的其他的端口. 废话多说,直入主题 准备条件:tomcat文 ...

  2. 2018.07.03 POJ 2318 TOYS(二分+简单计算几何)

    TOYS Time Limit: 2000MS Memory Limit: 65536K Description Calculate the number of toys that land in e ...

  3. 2018.07.08 hdu1394 Minimum Inversion Number(线段树)

    Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Ot ...

  4. js动态添加删除行,兼容ie和火狐

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. UVa 12230 && HDU 3232 Crossing Rivers (数学期望水题)

    题意:你要从A到B去上班,然而这中间有n条河,距离为d.给定这n条河离A的距离p,长度L,和船的移动速度v,求从A到B的时间的数学期望. 并且假设出门前每条船的位置是随机的,如果不是在端点,方向也是不 ...

  6. python编码(二)

    谈谈Unicode编码,简要解释UCS.UTF.BMP.BOM等名词 问题一 使用Windows记事本的“另存为”,可以在GBK.Unicode.Unicode big endian和UTF-8这几种 ...

  7. csdn获得积分

    常规方式获取可用分 1.每天只要回复就可以获得10个可用分.注:回复后的第2天发放. 2.每周回复量大于10个帖子,将获得30可用分.注:下一周的周二发放. 3.本周获得技术专家分30分以上,将获得4 ...

  8. (连通图 Tarjan)Caocao's Bridges --HDU --4738

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=4738 题目大意:曹操有很多岛屿,然后呢需要建造一些桥梁将所有的岛屿链接起来,周瑜要做的是就是不让曹操将所 ...

  9. Windows 下安装ReText

    打算使用MarkDown了,群友推荐使用ReText,基于Python的,同时依赖了Python的几个包,通过easystall可以方便地安装,同时制作了快捷启动方式,网上找了篇文章以备忘. Inst ...

  10. chrome 概述

    Chrome, Firebug, Filddle 调试:http://www.zhihu.com/question/35667558/answer/63936233 Chrome开发者工具系列: ht ...