求助!不知道怎么改
查看原帖
求助!不知道怎么改
558213
在下白吃楼主2022/11/7 21:46
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,sum,maxn=-1,hx[201]={},ans=0;
int way[8][2]={{0,1},{1,0},{-1,0},{0,-1},{1,-1},{1,1},{-1,1},{-1,-1}};
char a[1501][1501];
void dfs(int x,int y){
	sum++;
    for(int i=0;i<=7;i++){
		int nx=x+way[i][0],ny=y+way[i][1];
		if(nx>n||ny>m||nx<1||ny<1){
			continue;
		}
		if(a[nx][ny]=='*'){
		   a[nx][ny]='.';
		   dfs(nx,ny);	
		}
	}	
}
int main(){
	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]=='*'){
				sum=0;
				dfs(i,j);
				if(sum<100){
					hx[sum]++;
				}else{
					hx[sum%10+100]++;
				}
			}
		}
	}
	for(int i=1;i<=160;i++){
		if(hx[i]>0){
			ans++;
			maxn=i;
		}
	}
	cout<<ans<<' '<<maxn;
	return 0;
} 
2022/11/7 21:46
加载中...