6 条题解
-
1
#include<bits/stdc++.h>//万能头 using namespace std; char mp[165][165];//水塘 int n,m,s,v[165][165]; int d[8][2]={1,0,0,1,-1,0,0,-1,1,-1,-1,1,-1,-1,1,1}; //8方向 void p(int x,int y) { int i,dx,dy; v[x][y]=1;//已遍历过 for(i=0;i<=7;i++) { dx=x+d[i][0];//往8个方向 dy=y+d[i][1];//继续扩展 if(mp[dx][dy]=='W'&&v[dx][dy]==0)//若未遍览过 且 为水坑则继续 { p(dx,dy);//继续搜索 } } } int main() { cin>>n>>m;//输入n,m s=0;//水坑数 for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cin>>mp[i][j];//输入 } } for(int i=1;i<=n;i++)// { for(int j=1;j<=m;j++) { if(mp[i][j]=='W'&&v[i][j]==0)//若未遍览过 且 为水坑则继续 { p(i,j);//搜索 s++;//搜索完毕,水塘总数+1 } } } cout<<s;//输出s return 0; //结束 }
信息
- ID
- 2617
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 52
- 已通过
- 25
- 上传者