蒟蒻求助,90分RE
查看原帖
蒟蒻求助,90分RE
170603
chaichunyang楼主2020/5/26 18:29

DFS90分求救

#include<bits/stdc++.h>
char c[15039];
int a[15039][15039],sum[15039],q;
long long n,m,ansmany,ansbig=-1;
int  get(int x,int y){
	if(a[x][y]==1){
		a[x][y]=0;
		return 1+get(x+1,y)+get(x-1,y)+get(x,y-1)+get(x-1,y+1)+get(x+1,y-1)+get(x-1,y-1)+get(x+1,y+1)+get(x,y+1);
	}
	else{
		return 0;
	}
}
int main(){
	freopen("star.in","r",stdin);
	freopen("star.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		std::cin>>c+1;
		for(int j=1;j<=m;j++){
			a[i][j]=(c[j]=='*');
		}
	} 
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			q=get(i,j);
			if(q>0){
				if(sum[q]==0){
					ansmany++;
									
				}
				sum[q]++;
				if(q*sum[q]>ansbig)ansbig=q*sum[q];
			}
		}
	}
	printf("%d ",ansmany);	
	printf("%d\n",ansbig);
	return 0;
}
2020/5/26 18:29
加载中...