bzoj 3385: [Usaco2004 Nov]Lake Counting 数池塘
2017-09-25 15:20
405 查看
→题目链接←
从左上角开始扫,扫到一个W时就开始dfs
把经过的地方W都变成.
只要有W在周围就接着dfs
然后这么一次dfs下来就找到了一个池塘
最后统计下数量
代码:
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
char c[110][110];
int tox[8]={-1,-1,0,1,1,1,0,-1};
int toy[8]={0,1,1,1,0,-1,-1,-1};
int n,m,ans=0;
void dfs(int x,int y){
c[x][y]='.';
for(int i=0; i<8; i++){
int xx=x+tox[i];
int yy=y+toy[i];
if(xx<1 || xx>n || yy<1 || yy>m || c[xx][yy]!='W')continue;
dfs(xx,yy);
}
}
int main(){
scanf("%d%d\n",&n,&m);
for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++){
c[i][j]=getchar();
}
getchar();
}
for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++){
if(c[i][j]=='W')dfs(i,j),ans++;
}
}
printf("%d\n",ans);
return 0;
}
从左上角开始扫,扫到一个W时就开始dfs
把经过的地方W都变成.
只要有W在周围就接着dfs
然后这么一次dfs下来就找到了一个池塘
最后统计下数量
代码:
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
char c[110][110];
int tox[8]={-1,-1,0,1,1,1,0,-1};
int toy[8]={0,1,1,1,0,-1,-1,-1};
int n,m,ans=0;
void dfs(int x,int y){
c[x][y]='.';
for(int i=0; i<8; i++){
int xx=x+tox[i];
int yy=y+toy[i];
if(xx<1 || xx>n || yy<1 || yy>m || c[xx][yy]!='W')continue;
dfs(xx,yy);
}
}
int main(){
scanf("%d%d\n",&n,&m);
for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++){
c[i][j]=getchar();
}
getchar();
}
for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++){
if(c[i][j]=='W')dfs(i,j),ans++;
}
}
printf("%d\n",ans);
return 0;
}
相关文章推荐
- bzoj 3385: [Usaco2004 Nov]Lake Counting 数池塘(DFS)
- 3385: [Usaco2004 Nov]Lake Counting 数池塘
- BZOJ 3384: [Usaco2004 Nov]Apple Catching 接苹果/BZOJ 1750: [Usaco2005 qua]Apple Catching dp
- BZOJ 3384: [Usaco2004 Nov]Apple Catching 接苹果( dp )
- bzoj 3384: [Usaco2004 Nov]Apple Catching 接苹果(DP)
- bzoj 3386: [Usaco2004 Nov]Til the Cows Come Home 带奶牛回家
- bzoj 3384: [Usaco2004 Nov]Apple Catching 接苹果
- BZOJ 3357: [Usaco2004]等差数列
- 【bzoj3315】[Usaco2013 Nov]Pogo-Cow
- 【bzoj2023/1630】[Usaco2005 Nov]Ant Counting 数蚂蚁 dp
- BZOJ1232: [Usaco2008Nov]安慰奶牛cheer
- bzoj1770 [Usaco2009 Nov]lights 燈
- bzoj 3381: [Usaco2004 Open]Cave Cows 2 洞穴里的牛之二 RMQ
- bzoj 1707: [Usaco2007 Nov]tanning分配防晒霜
- BZOJ 3357: [Usaco2004]等差数列( dp )
- BZOJ 1642: [Usaco2007 Nov]Milking Time 挤奶时间
- 【BZOJ】1662: [Usaco2006 Nov]Round Numbers 圆环数(数位dp)
- BZOJ 3359: [Usaco2004 Jan]矩形( dp )
- 【BZOJ】2019: [Usaco2009 Nov]找工作(spfa)
- bzoj 3362: [Usaco2004 Feb]Navigation Nightmare 导航噩梦(加权并查集)