首页
IT
登录
6mi
u
盘
搜
搜 索
IT
poj2386.cpp
poj2386.cpp
xiaoxiao
2021-04-17
47
//这道题改了无数遍结果一直输出零,由于题目输入较长,我们可以取一个3乘3测试,技巧啊!!
//这还是一道简单题。略微有坑点。。
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<string>
#include<stdlib.h>
using
namespace
std
;
int
N
,
M
;
char
filed
[
102
][
102
];
void
dfs
(
int
x
,
int
y
)
//DFS的精髓
{
filed
[
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
(
0
<=
nx
&&
nx
<=
N
&&
0
<=
ny
&&
ny
<=
M
&&
filed
[
nx
][
ny
]
==
'W'
)
dfs
(
nx
,
ny
);
}
}
}
int
main
()
{
scanf
(
"%d %d"
,
&
N
,
&
M
);
getchar
();
for
(
int
i
=
0
;
i
<
N
;
i
++
){
for
(
int
j
=
0
;
j
<
M
;
j
++
){
scanf
(
"%c"
,
&
filed
[
i
][
j
]);
//我这里的输入形式有问题‘
}
getchar
();
//加不加都可以,加上总没错吧!!
}
int
count
=
0
;
for
(
int
i
=
0
;
i
<
N
;
i
++
){
for
(
int
j
=
0
;
j
<
M
;
j
++
){
if
(
filed
[
i
][
j
]
==
'W'
)
{
dfs
(
i
,
j
);
count
++
;}
}
}
printf
(
"%d/n"
,
count
);
return
0
;
}
转载请注明原文地址: https://ju.6miu.com/read-674216.html
技术
最新回复
(
0
)