Avoid The Lakes (深搜dfs)

Avoid The Lakes

Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other)
Total Submission(s) : 194   Accepted Submission(s) : 108
Problem Description

Farmer John's farm was flooded in the most recent storm, a fact only aggravated by the information that his cows are deathly afraid of water. His insurance agency will only repay him, however, an amount depending on the size of the largest "lake" on his farm.

The farm is represented as a rectangular grid with N (1 ≤ N ≤ 100) rows andM (1 ≤ M ≤ 100) columns. Each cell in the grid is either dry or submerged, and exactlyK (1 ≤ KN × M) of the cells are submerged. As one would expect, a lake has a central cell to which other cells connect by sharing a long edge (not a corner). Any cell that shares a long edge with the central cell or shares a long edge with any connected cell becomes a connected cell and is part of the lake.

 

Input

* Line 1: Three space-separated integers: N, M, and K
* Lines 2..K+1: Line i+1 describes one submerged location with two space separated integers that are its row and column:R and C

 

Output

* Line 1: The number of cells that the largest lake contains. 

 

Sample Input
  
  
3 4 5 3 2 2 2 3 1 2 3 1 1
 

Sample Output
  
  
4
 

 

题目大意:

第一行N,M,K代表N*M的网格,其中5块为'lake',一下5行是'lake'的坐标,边相邻为一个湖,求最大的湖

 

思路:

要检查所有情况,所以深搜

 

#include<cstdio>
#include<cstring>
int max(int a,int b)
{
	return a>b?a:b;
}
struct str
{
	int x;
	int y;
}p[10000];
int vis[110][110],M,N,K,count,cnt,k;
void clc()//还原标记的函数
{
	for(int i=1;i<=N;i++)
		for(int j=1;j<=M;j++)
		{
			if(vis[i][j]==-1)
				vis[i][j]==0;	
		}
}
void find(int x,int y)//查找,并随后向四个方向递归
{
	if(x<=0||x>N||y<=0||y>M)
		return;
	if(vis[x][y]!=1)
		return;
	count++;
	vis[x][y]=-1;//查过的记-1,方便回查
	find(x-1,y);
	find(x+1,y);
	find(x,y-1);
	find(x,y+1);
}
int main()
{
	while(scanf("%d%d%d",&N,&M,&K)!=EOF)
	{
		memset(vis,0,sizeof(vis));//清空为0
		for(k=1;k<=K;k++)
		{
			scanf("%d%d",&p[k].x,&p[k].y);
			vis[p[k].x][p[k].y]=1;//湖记为1;
		}
		cnt=0;//计数
		for(int i=1;i<=N;i++)
			for(int j=1;j<=M;j++)
			{
				count=0;
				clc();
				find(i,j);
				cnt=max(cnt,count);//比较本次和之前的'湖'谁大			}	
		printf("%d\n",cnt);
	}	
	return 0;
}


 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Lakes Environmental Austal View 8.6是一款用于环境空气质量模拟和预测的软件工具。由Lakes Environmental开发,旨在支持环境管理和决策制定过程。 Austal View是一种流行的空气质量建模工具,可以模拟和预测大气传输和扩散。它可以模拟各种对环境有潜在影响的源(如工业和交通源)对空气质量的影响。通过使用Austal View 8.6,用户可以评估不同源的潜在影响,并制定相应的环境保护和改善策略。 ARTM 1.4.2是德国用于空气污染模拟的一种专门软件。它采用了德国技术辅助评估模型(TA Luft)的方法,并进行了改进。ARTM可以用于评估不同扰动源(如工厂和化学品储存)对周围环境的影响,以及在可接受的限制条件下进行污染物排放。 AERMOD 8.9是美国环境保护署(EPA)批准的一种大气扩散模型。它广泛用于评估工业和工厂源对环境的影响。AERMOD基于物理学和统计学原理,可以模拟和预测污染物在大气中的传输和扩散。该模型可用于评估大气污染对人体健康和生态系统的潜在影响,并帮助制定相关的空气质量管理政策。 综上所述,Lakes Environmental Austal View 8.6、ARTM 1.4.2和AERMOD 8.9是三种常用的环境空气质量模拟和评估工具,它们可以帮助评估和预测不同源的潜在环境影响,并支持决策制定过程。这些工具为环境管理提供了科学依据,有助于制定有效的环境保护措施和政策。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值