DFS专攻:POJ 1111

原创 2013年12月05日 00:29:54

题意就是求周长,给出坐标,X能连成怎么样的图形都求出周长……

刚开始边界错了,今天重新看了又调了好久才AC……因为X和其他的如果相连的话,会有两个重的而且都不能要,比如:XX,两个X中间的两个两条都不能取,所以-2,因为-2了所以这个X就不能再要了,让其变成 '.' 就行了……因为只有上下左右的边才会重合,所以四个顶角的那四个就不用考虑啦……

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<set>
#include<vector>
#include<stack>
#include<ctime>
#include<cstdlib>
#define mem(a,b) memset(a,b,sizeof(a))
typedef long long ll;
using namespace std;
int n,m,p,q,sum;
char a[22][22];
void dfs(int x,int y)
{
    if(a[x][y]=='.') return;
    a[x][y]='.';
    sum+=4;
    if(a[x+1][y]=='X') sum-=2;
    if(a[x-1][y]=='X') sum-=2;
    if(a[x][y+1]=='X') sum-=2;
    if(a[x][y-1]=='X') sum-=2;
    dfs(x,y+1);
    dfs(x,y-1);
    dfs(x+1,y);
    dfs(x-1,y);
    dfs(x+1,y+1);
    dfs(x-1,y+1);
    dfs(x+1,y-1);
    dfs(x-1,y-1);
}
int main()
{
    while(cin>>n>>m>>p>>q&&(n||m||p||q))
    {
        int i,j;
        sum=0;
        mem(a,'.');
        for(i=1;i<=n;i++)
            for(j=1;j<=m;j++)
                cin>>a[i][j];
        dfs(p,q);
        cout<<sum<<endl;
    }
    return 0;
}

DFS深度优先搜索(2)--poj1321(棋盘问题 经典DFS)

棋盘问题  Time Limit:1000MS    Memory Limit:10000KB    64bit IO Format:%lld & %llu Description...
  • Acmer_Sly
  • Acmer_Sly
  • 2016年09月10日 14:17
  • 1416

[ACM] poj 1088 滑雪 (记忆化搜索DFS)

解题思路: 记忆化搜索
  • sr19930829
  • sr19930829
  • 2014年05月23日 15:41
  • 2487

poj 3984 迷宫问题 dfs 求迷宫路径

题目地址:http://poj.org/problem?id=3984 利用图论中深搜的思想,存在边就是x,y ->  x+1,y  还有x,y -> x,y+1   然后仍然是访问未访问的而且不是墙...
  • jingqi814
  • jingqi814
  • 2013年09月25日 18:03
  • 3325

POJ 2676 Sudoku (数独 DFS)

Sudoku Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 14368   Accept...
  • Tc_To_Top
  • Tc_To_Top
  • 2015年02月10日 09:11
  • 1145

DFS专攻:POJ 3194 简单DFS

题意:因为给出N*N的矩阵了,而且其中肯定有1到n的数,如果这1到n的数中,举例一个数:1,这个数都是都是左右相连的话,并且只有n个1左右相连的话可以,如果这n个数都是这种情况,那么就是good,否则...
  • u011466175
  • u011466175
  • 2013年12月06日 21:08
  • 743

poj入门水题--深度搜索(dfs)题 1011,含各种剪枝,比较经典

深度搜索(dfs)题 1011,含各种剪枝,比较经典
  • qq_17246605
  • qq_17246605
  • 2016年12月25日 20:49
  • 945

poj 1111 dfs 求周长

题意:给你一个图形,让你求周长。 思想:首先把这个图存一遍,然后吧一圈都置为 . ,一旦搜索到边上就加一。 #include #include char map[2...
  • qq_35736364
  • qq_35736364
  • 2017年04月20日 21:49
  • 80

poj 1111(Image Perimeters DFS)

这道题其实我都没有看懂啥意思,也没太仔细看,就想着看看博客中某yuan博客中是否说出了它的题意,没想到一不小 心看见了求周长的方法,原来Perimeters就是周长的意思啊!!!旁边有几个点...
  • sinat_22659021
  • sinat_22659021
  • 2014年12月20日 15:52
  • 538

POJ 1111 Image Perimeters(dfs)

Description 先输入一个矩阵,再输入一个X的位置,然后输出与这个X在八个方向能够连起来的所有X组成的图形的周长 Input 多组用例。每组用例的第一行为四个整数row,col,...
  • V5ZSQ
  • V5ZSQ
  • 2015年08月23日 14:33
  • 306

POJ 1111 Image Perimeters(DFS)

POJ 1111 Image Perimeters(简单DFS) http://poj.org/problem?id=1111 题意:(L又是一道题意复杂的简单题)给你一个R*C的仅有字符’.’(表空...
  • u013480600
  • u013480600
  • 2014年05月29日 19:53
  • 697
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DFS专攻:POJ 1111
举报原因:
原因补充:

(最多只允许输入30个字)