zoukankan      html  css  js  c++  java
  • 1751: [Usaco2005 qua]Lake Counting

    1751: [Usaco2005 qua]Lake Counting

    Time Limit: 5 Sec  Memory Limit: 64 MB
    Submit: 190  Solved: 150
    [Submit][Status][Discuss]

    Description

    Due to recent rains, water has pooled in various places in Farmer John's field, which is represented by a rectangle of N x M (1 <= N <= 100; 1 <= M <= 100) squares. Each square contains either water ('W') or dry land ('.'). Farmer John would like to figure out how many ponds have formed in his field. A pond is a connected set of squares with water in them, where a square is considered adjacent to all eight of its neighbors. Given a diagram of Farmer John's field, determine how many ponds he has.

    Input

    * Line 1: Two space-separated integers: N and M * Lines 2..N+1: M characters per line representing one row of Farmer John's field. Each character is either 'W' or '.'. The characters do not have spaces between them.

    Output

    * Line 1: The number of ponds in Farmer John's field.

    Sample Input


    10 12
    W........WW.
    .WWW.....WWW
    ....WW...WW.
    .........WW.
    .........W..
    ..W......W..
    .W.W.....WW.
    W.W.W.....W.
    .W.W......W.
    ..W.......W.

    Sample Output


    3

    OUTPUT DETAILS:

    There are three ponds: one in the upper left, one in the lower left,
    and one along the right side.

    HINT

     

    Source

    Gold

    题解:直接萌萌哒DFS秒之,经典的普及组难度基础题,水水哒

    (Tip:38行的dfs(a1,a2)貌似只有这样写在本机才能对,提交也能A;很神奇的是如果直接写dfs(i,j)的话在本机就会出现带入的是(1,1)结果进去的是(2,2)QAQ,然后各种神奇跪OTL,更神奇的是这个在本机都跪成狗的程序居然submit之后也能A(QAQ),求神犇解释)

     1 var
     2    i,j,k,l,m,n,a1,a2:longint;
     3    c1:char;
     4    a:array[0..200,0..200] of longint;
     5 procedure dfs(x,y:longint);inline;
     6           begin
     7                a[x,y]:=0;
     8                if a[x-1,y-1]=1 then dfs(x-1,y-1);
     9                if a[x,y-1]=1 then dfs(x,y-1);
    10                if a[x+1,y-1]=1 then dfs(x+1,y-1);
    11                if a[x-1,y+1]=1 then dfs(x-1,y+1);
    12                if a[x,y+1]=1 then dfs(x,y+1);
    13                if a[x+1,y+1]=1 then dfs(x+1,y+1);
    14                if a[x-1,y]=1 then dfs(x-1,y);
    15                if a[x+1,y]=1 then dfs(x+1,y);
    16           end;
    17 begin
    18      readln(n,m);
    19      fillchar(a,sizeof(a),0);
    20      for i:=1 to n do
    21          begin
    22               for j:=1 to m do
    23                   begin
    24                        read(c1);
    25                        case c1 of
    26                             'W':a[i,j]:=1;
    27                             '.':a[i,j]:=0;
    28                        end;
    29                   end;
    30               readln;
    31          end;
    32      l:=0;
    33      for i:=1 to n do
    34          for j:=1 to m do
    35              if a[i,j]=1 then
    36                 begin
    37                      a1:=i;a2:=j;
    38                      inc(l);dfs(a1,a2);
    39                 end;
    40      writeln(l);
    41      readln;
    42 end. 
  • 相关阅读:
    Tomcat6 只允许指定域名访问,禁用IP地址访问,防止恶意解析
    java实现http协议发送和接收数据
    firefox下jquery ajax 返回 [object XMLDocument]处理
    js 格式化时间
    Jquery中的offset()和position()深入剖析(元素定位)
    sql格式化时间
    tomcat绑定域名
    查看tomcat的版本号
    [转载] IOS 获取网络图片的大小 改变 图片色值 灰度什么的方法集合
    CABasicAnimation动画
  • 原文地址:https://www.cnblogs.com/HansBug/p/4391198.html
Copyright © 2011-2022 走看看