poj2386 Lake Counting (深搜)
来源:互联网 发布:迅雷快鸟 mac 版本 编辑:程序博客网 时间:2024/06/05 05:46
Lake Counting
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 25416 Accepted: 12803
Description
Due to recent rains, water has pooled in various places in Farmer John's field, which is represented by a rectangle of N x M (1 <= N <= 100; 1 <= M <= 100) squares. Each square contains either water ('W') or dry land ('.'). Farmer John would like to figure out how many ponds have formed in his field. A pond is a connected set of squares with water in them, where a square is considered adjacent to all eight of its neighbors.
Given a diagram of Farmer John's field, determine how many ponds he has.
Given 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 characters per line representing one row of Farmer John's field. Each character is either 'W' or '.'. The characters do not have spaces between them.
* Lines 2..N+1: M characters per line representing one row of Farmer John's field. Each character is either 'W' or '.'. The characters do not have spaces between them.
Output
* Line 1: The number of ponds in Farmer John's field.
Sample Input
10 12W........WW..WWW.....WWW....WW...WW..........WW..........W....W......W...W.W.....WW.W.W.W.....W..W.W......W...W.......W.
Sample Output
3
Hint
OUTPUT DETAILS:
There are three ponds: one in the upper left, one in the lower left,and one along the right side.
There are three ponds: one in the upper left, one in the lower left,and one along the right side.
Source
USACO 2004 November
解析:直接看代码吧。
代码:
#include<cstdio>using namespace std;const int maxn=1e2;int n,m;char s[maxn+10][maxn+10];void dye(int x,int y){ int i,j; s[x][y]='.'; for(i=-1;i<=1;i++) for(j=-1;j<=1;j++) if(1<=x+i && x+i<=n && 1<=y+j && y+j<=m && s[x+i][y+j]=='W')dye(x+i,y+j);}int main(){ freopen("1.in","r",stdin); int i,j,ans; while(scanf("%d%d\n",&n,&m)==2) { for(i=1;i<=n;i++) for(j=1;j<=m;j++) scanf("%c\n",&s[i][j]); for(ans=0,i=1;i<=n;i++) for(j=1;j<=m;j++) if(s[i][j]=='W')dye(i,j),ans++; printf("%d\n",ans);} return 0;}
0 0
- poj2386 Lake Counting (深搜)
- POJ2386:Lake Counting(dfs)
- poj2386 Lake Counting(简单DFS)
- poj2386——Lake Counting(搜索)
- POJ2386 Lake Counting
- POJ2386:Lake Counting(DFS)
- poj2386 Lake Counting DFS
- poj2386 Lake Counting
- poj2386 Lake Counting
- POJ2386 Lake Counting(DFS)
- poj2386 Lake Counting
- POJ2386 Lake Counting 【DFS】
- Lake Counting--poj2386
- poj2386 Lake Counting
- POJ2386 Lake Counting
- POJ2386-Lake Counting
- POJ2386 Lake Counting
- POJ2386 Lake Counting
- KMP算法(java版本)
- java类初始化
- Mac安装WebStrom并且进行利用keygen进行破解
- zzulioj--1831-- 周末出游(vector建图+dfs)
- socket连接池SocketPool分析(一):概述
- poj2386 Lake Counting (深搜)
- PHP中的加密方法的比对
- php = > 细说php
- 关于字符,字符串,char和string
- HTML块级元素与行级元素
- “FileLoadException was unhandled”解决方法
- socket连接池SocketPool分析(二):《UNPv1》复习(上):socket函数,三次握手,四次挥手
- IOS UI 01 课堂笔记 -label
- table表格序列化