POJ 2386
元のタイトル接続:http://poj.org/problem?id=2386
Lake Counting
Time Limit: 1000 MS
メモリLimit: 65536 K
Total Submissions: 18126
Acceepted: 9149
Description
Due to recentライヴ、water has pooled in various placces in Farmer John's field、which is represented by rectangle of N x M(1==N<=100;1<=M==100)スクウェア.Each square contains eigther water('W')or dry land('.').Farmer John would like to figure Out hondy ponds have formed in field.A pond is a connected set ofスクウェアウェアウェアウェアウェア。
Gven 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 character s per line representing one row of Farmer John's field.Each character is einther'W'r'.The characters do not have spaces between them.
Output
*Line 1:The number of ponds in Farmer John's field.
Sample Input
OUT DETAILS:
The re are three ponds:one in the up left,one in the lower left,and one along the right side.
テーマは簡単に述べて、いっしょに雨が降った後にまた水がたまります。どのぐらいの水たまりが必要ですか?上下左右8方向に連結されているのが水たまりです。
図のように水たまりが三つあります。
コードは死ぬと思いますが、コレクションする価値があります。
Lake Counting
Time Limit: 1000 MS
メモリLimit: 65536 K
Total Submissions: 18126
Acceepted: 9149
Description
Due to recentライヴ、water has pooled in various placces in Farmer John's field、which is represented by rectangle of N x M(1==N<=100;1<=M==100)スクウェア.Each square contains eigther water('W')or dry land('.').Farmer John would like to figure Out hondy ponds have formed in field.A pond is a connected set ofスクウェアウェアウェアウェアウェア。
Gven 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 character s per line representing one row of Farmer John's field.Each character is einther'W'r'.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 Output3
ベントOUT DETAILS:
The re are three ponds:one in the up left,one in the lower left,and one along the right side.
テーマは簡単に述べて、いっしょに雨が降った後にまた水がたまります。どのぐらいの水たまりが必要ですか?上下左右8方向に連結されているのが水たまりです。
図のように水たまりが三つあります。
コードは死ぬと思いますが、コレクションする価値があります。
// , 8 , x,y
int nx,ny,x,y;
for(int dx = -1; dx <= 1; dx++)
{
for(int dy = -1; dy <= 1; dy++)
{
nx = x + dx;
ny = y + dy;
}
}
// 4 , x,y
int nx,ny,x,y;
int dx[4] = {1,0,-1,0}, dy={0,1,0,-1}
for(int i = 0; i < 4 ; i++)
{
nx = x + dx[i], ny = y + dy[i];
}
#include<stdio.h>
#define MAX 100
int N,M;
char field[MAX][MAX];
void dfs(int x, int y)
{
field[x][y] = '.';
for(int dx = -1; dx <= 1; dx++)
{
for(int dy = -1; dy <= 1; dy++)
{
int nx = x + dx;
int ny = y + dy;
if(nx>=0 && nx<N && ny>=0 && ny<M && field[nx][ny]=='W')
dfs(nx,ny);
}
}
}
int main()
{
while(scanf("%d%d",&N.&M)!=EOF)
{
for(int i = 0; i < N; i++)
{
for(int j =0; j < M; j++)
{
scanf("%d", &field[i][j]);
}
getchar();
}
for(int i = 0; i < N; i++)
{
for(int j = 0; j < M; j++)
{
if(field[i][j]=='W')
{
dfs(i,j);
res++;
}
}
}
}
return 0;
}
水たまりを探すとdfsを何回か探しました。