#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. css样式记忆

    text-indent: 2em;   //开头空两格: display : none;    //隐藏元素 background:#CCC;  //背景颜色 background: url(imag ...

  2. 在delphi XE5 里面编译kbmmw4.3

    Delphi XE5 仓促的发布了,虽然开始支持Android 开发了,但是经过试用,发现那个模拟器慢到无法用, 真机可以运行,但是调试也几乎无法用.由于XE5 的主要增加的是Android 的开发支 ...

  3. Android中px, ppi, dpi, dp, dip, sp概念解析

    Android中px, ppi, dpi, dp, dip, sp概念解析

  4. 44 The shopping psychology 购物心理

    The shopping psychology 购物心理 ①People can be addicted to different things ---e. g.,alcohol, drugs, ce ...

  5. 超全table功能Datatables使用的填坑之旅--1: 无法渲染表格数据: ajax调用了参数 : success

    问题:Datatables: 无法渲染表格数据 原因:datatables的ajax 传了"success":function(){},导致无法渲染数据. ajax 删掉" ...

  6. AdapterViewFlipper功能 自动播放的图片库

    案例中有"上一个""下一个""自动播放",但是我觉得可以更加完善一下,点击自动播放,按钮变成"停止播放",在按" ...

  7. python cov()

    在PCA中涉及到了方差var和协方差cov,下面详细了解这两个函数的用法.numpy中var和cov函数求法和MATLAB中var和cov函数求法类似. 首先均值,样本方差,样本协方差公式分别为 其中 ...

  8. 20155236 2016-2017-2 《Java程序设计》第七周学习总结

    20155236 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 Calendar是个抽象类,java.util.GregorianCalendar是其子类, ...

  9. 用Node完成AWS S3的Upload流程之全世界最简版

    开场: 查了两天文档,Error了38次,最后索性去掉所有附加条件, 连界面也不要了,在命令行里跑通了一坨最干瘪的Upload流程! 还冒着热气…… 在此先做记录,明天可以搭配美美的界面继续调试了. ...

  10. _RecordsetPtr使用方法

    _variant_t vUsername,vID,vname; //变量声明 _RecordsetPtr m_pRecordset;     //记录集 CString strid; _Connect ...