zoukankan      html  css  js  c++  java
  • E:Zju1047 Image Perimeters

    Problem E: Zju1047 Image Perimeters

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 34  Solved: 18
    [Submit][Status][Web Board]

    Description

    给出一张由"x"和"."组成的矩阵。每个"x"可以向上下左右及两个斜对角进行连通,请问由某个点开始的"x",它所连通的图形的周长为多少。

    Input

    整个测试有多组数据,整个测试以四个零代表结束。
    对于每个数据,第一行给出整个图形的大小(长度小于50),再给出开始点的坐标。接下来若干行用于描述这个图形。

    Output

    如题

    Sample Input

    2 2 2 2
    XX
    XX
    6 4 2 3
    .XXX
    .XXX
    .XXX
    ...X
    ..X.
    X...
    5 6 1 3
    .XXXX.
    X....X
    ..XX.X
    .X...X
    ..XXX.
    7 7 2 6
    XXXXXXX
    XX...XX
    X..X..X
    X..X...
    X..X..X
    X.....X
    XXXXXXX
    7 7 4 4
    XXXXXXX
    XX...XX
    X..X..X
    X..X...
    X..X..X
    X.....X
    XXXXXXX
    0 0 0 0
    
    
    

    Sample Output

    8
    18
    40
    48
    8

    HINT




    此图对应第二个数据

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 char amap[23][23];
     4 int pic[23][23]; 
     5 int h[8][2]={0,1,0,-1,1,0,-1,0,1,-1,1,1,-1,1,-1,-1}; 
     6 int x,y,ans;
     7 void bfs(int m,int n)
     8 {
     9     int xx,yy;
    10     int i;
    11     for (i=0;i<8;i++)
    12     {
    13         xx=m+h[i][0];
    14         yy=n+h[i][1];
    15         if (xx==0||yy==0||xx==x+1||yy==y+1||amap[xx][yy]=='.') 
    16         {
    17             if(i<4)
    18             ans++;
    19         }
    20         else
    21         if (pic[xx][yy]==0)
    22         {
    23             pic[xx][yy]=1;
    24             bfs(xx,yy);
    25         }
    26     }
    27 }
    28 int main()
    29 {
    30     int x1,y1;
    31     while(scanf("%d%d%d%d",&x,&y,&x1,&y1),x!=0||y!=0||x1!=0||y1!=0)
    32     {
    33         for(int i=1;i<=x;i++)
    34         cin>>amap[i]+1;
    35         memset(pic,0,sizeof(pic));
    36         pic[x1][y1]=1;
    37         ans=0;
    38         bfs(x1,y1);
    39         cout<<ans<<endl;
    40     }
    41     return 0;
    42 }
    Image
  • 相关阅读:
    LeetCode522. 最长特殊序列 II
    docker activiti部署到Linux环境,流程图乱码
    linux docker 命令
    linux 安装docker
    JSON,JSONOBJECT,JSONARRAY 互转
    Python和java 的区别笔记(未完成)
    程序员常读书单整理,附下载地址
    javaweb同一个项目打包两次放在同一个tomcat下
    SSM项目集成Redis
    Chrome浏览器崩溃
  • 原文地址:https://www.cnblogs.com/LHR-HY/p/6785759.html
Copyright © 2011-2022 走看看