zoukankan      html  css  js  c++  java
  • Lake Counting-C++

    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.
    
    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.
    
    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 Output
    3
    

    CODE:

    #include<bits/stdc++.h>
    using namespace std;
    int cnt=0;
    char a[1010][1010];
    int dir[8][2]={{1,0},{-1,0},{0,1},{0,-1},{1,1},{1,-1},{-1,1},{-1,-1}};
    bool visited[1010][1010];
    void dfs(int x,int y)
    {
    	visited[x][y]=1;
    	a[x][y]='.';
    	cnt++;
    	for(int i=0;i<8;i++)
    	{
    		int tx=x+dir[i][0];
    		int ty=y+dir[i][1];
    		if(a[tx][ty]=='W')
    		{
    			dfs(tx,ty);
    		}
    	}
    }
    int main()
    {
    	int n,m,ans=0;
    	cin>>n>>m;
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<=m;j++)
    		{
    			cin>>a[i][j];
    		}
    	}
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<=m;j++)
    		{
    			if(a[i][j]=='W')
    			{
    				cnt=0;
    				dfs(i,j);
    				ans++;
    			}
    		}
    	}
    	cout<<ans<<endl;
    }
    

    Thanks for reading.

    个人博客地址: www.moyujiang.com 或 moyujiang.top
  • 相关阅读:
    Sql中关于日期的格式化
    linq中存储过程返回集合存在的问题
    当页面请求数据是从静态页中获取的Post方法会报405的错误
    jquery中load方法在ie下会卡住
    jquery用div实现下拉列表的效果
    jquery获取服务器端控件的方法
    【转】jquery实现文本框有提示输入的信息
    toString()方法浅谈
    Object类与上下转型
    多态
  • 原文地址:https://www.cnblogs.com/moyujiang/p/11167736.html
Copyright © 2011-2022 走看看