90分求助!!!
查看原帖
90分求助!!!
636692
Castaways楼主2023/7/30 18:59

最后一个点 wa 了

#include<bits/stdc++.h>
#define yzh(a) freopen(#a".in","r",stdin); //freopen(#a".out","w",stdout);
#define wlp ios::sync_with_stdio(false);
#define f1(i,a,b) for(int i=a;i<=b;i++)
#define f2(i,a,b) for(int i=a;i>=b;i--)
#define ll long long
#define D double
#define maxn 1510
using std::getchar;
using std::putchar;
using std::ios;
int n,m;
int ans,tmp;
int answer[maxn];
bool v[maxn][maxn];
char a[maxn][maxn];
int dx[8]={0,1,0,-1,1,-1,-1,1};
int dy[8]={1,0,-1,0,1,-1,1,-1};
bool cmp(int x,int y){return x>y;}
int dfs(int x,int y){
	tmp++;
	v[x][y]=false;
	f1(i,0,7){
		int xx=x+dx[i],yy=y+dy[i];
		if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&a[xx][yy]=='*'&&v[xx][yy]){
			v[xx][yy]=false;
			dfs(xx,yy);
		};
	};
	return tmp;
};
int main(){
	//yzh()
	wlp;
	std::cin>>n>>m;
	memset(v,1,sizeof(v));
	f1(i,1,n) f1(j,1,m) std::cin>>a[i][j];
	f1(i,1,n){
		f1(j,1,m){
			if(a[i][j]=='*'&&v[i][j]){
				tmp=0;
				int cur=dfs(i,j);
				answer[cur]++;
			};
		};
	};
	f1(i,1,maxn) if(answer[i]!=0) ans++;
	std::cout<<ans<<" ";
	int maxx=0;
	f1(i,1,maxn){
		if(answer[i]!=0){
			int cur=answer[i]*i;
			maxx=std::max(maxx,cur);
		};
	};
	std::cout<<maxx;
	return 0;
}
2023/7/30 18:59
加载中...