POJ 2386

Posted 一个_小菜鸟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ 2386相关的知识,希望对你有一定的参考价值。

http://poj.org/problem?id=2386

这个题目与那个POJ 1562几乎是差不多的,只不过那个比这个输入要复杂一些

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <iostream>
 4 
 5 
 6 using namespace std;
 7 
 8 char str[200][200];
 9 int dps(int i,int j)
10 {
11     if(str[i-1][j-1]==W)
12     {
13         str[i-1][j-1]=#;
14         dps(i-1,j-1);
15     }
16     if(str[i-1][j]==W)
17     {
18         str[i-1][j]=#;
19         dps(i-1,j);
20     }
21     if(str[i-1][j+1]==W)
22     {
23         str[i-1][j+1]=#;
24         dps(i-1,j+1);
25     }
26     if(str[i][j-1]==W)
27     {
28         str[i][j-1]=#;
29         dps(i,j-1);
30     }
31     if(str[i][j+1]==W)
32     {
33         str[i][j+1]=#;
34         dps(i,j+1);
35     }
36     if(str[i+1][j-1]==W)
37     {
38         str[i+1][j-1]=#;
39         dps(i+1,j-1);
40     }
41     if(str[i+1][j]==W)
42     {
43         str[i+1][j]=#;
44         dps(i+1,j);
45     }
46     if(str[i+1][j+1]==W)
47     {
48         str[i+1][j+1]=#;
49         dps(i+1,j+1);
50     }
51 
52 }
53 int main()
54 {
55     memset(str,0,sizeof(str));
56     int m,n,i,j,ans;
57     scanf("%d%d",&m,&n);
58     for(i=1;i<=m;i++)
59         scanf("%s",str[i]);
60     for(i=1,ans=0;i<=m;i++)
61         for(j=0;j<n;j++)
62         {
63             if(str[i][j]==W)
64             {
65                 ans++;
66                 str[i][j]=#;
67                 dps(i,j);
68             }
69         }
70     printf("%d",ans);
71     return 0;
72 }

 

以上是关于POJ 2386的主要内容,如果未能解决你的问题,请参考以下文章

POJ 2386 Lake Counting

POJ 2386 Lake Counting

POJ 2386 Lake Counting

POJ 2386 Lake Counting

POJ 2386——Lake Counting

DFS----Lake Counting (poj 2386)