求调
  • 板块灌水区
  • 楼主LucAlva
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/8/16 10:53
  • 上次更新2024/8/16 10:57:38
查看原帖
求调
1044970
LucAlva楼主2024/8/16 10:53
#include <bits/stdc++.h>
using namespace std;
long long n;
long long a[5100][5100]{},b[5100][5100]{},c[5100][5100]{};
long long s1=0;
void aaa(long long x,long long y){
    b[x][y]=1;
    long long dx=x,dy=y;
    dx=x+1,dy=y;
    if(dx>=1&&dx<=n&&dy>=1&&dy<=n&&b[dx][dy]==0){
        aaa(dx,dy);
    }
    dx=x-1,dy=y;
    if(dx>=1&&dx<=n&&dy>=1&&dy<=n&&b[dx][dy]==0){
        aaa(dx,dy);
    }
    dx=x,dy=y+1;
    if(dx>=1&&dx<=n&&dy>=1&&dy<=n&&b[dx][dy]==0){
        aaa(dx,dy);
    }
    dx=x,dy=y-1;
    if(dx>=1&&dx<=n&&dy>=1&&dy<=n&&b[dx][dy]==0){
        aaa(dx,dy);
    }
    return;
}
bool bbb(long long x,long long y){
	if(a[x][y]==0){
		return 1;
	}
    long long dx=x,dy=y;
    dx=x+1,dy=y;
    if(dx>=1&&dx<=n&&dy>=1&&dy<=n&&c[dx][dy]==0&&b[dx][dy]==0){
    	c[dx][dy]=1;
        return bbb(dx,dy);
    }
    dx=x-1,dy=y;
    if(dx>=1&&dx<=n&&dy>=1&&dy<=n&&c[dx][dy]==0&&b[dx][dy]==0){
    	c[dx][dy]=1;
        return bbb(dx,dy);
    }
    dx=x,dy=y+1;
    if(dx>=1&&dx<=n&&dy>=1&&dy<=n&&c[dx][dy]==0&&b[dx][dy]==0){
    	c[dx][dy]=1;
        return bbb(dx,dy);
    }
    dx=x,dy=y-1;
    if(dx>=1&&dx<=n&&dy>=1&&dy<=n&&c[dx][dy]==0&&b[dx][dy]==0){
    	c[dx][dy]=1;
        return bbb(dx,dy);
    }
    return 0;
}
long long s2=0;
int main(){
    cin>>n;
    for(long long i=1;i<=n;i++){
        for(long long j=1;j<=n;j++){
            char bbb;
            cin>>bbb;
            if(bbb=='.'){
                b[i][j]=1;
                a[i][j]=b[i][j];
            }
        }
    }
    for(long long i=1;i<=n;i++){
        for(long long j=1;j<=n;j++){
            if(b[i+1][j]==1||b[i-1][j]==1||b[i][j+1]==1||b[i][j-1]==1){
                a[i][j]=1;
            }
        }
    }
    for(long long i=1;i<=n;i++){
        for(long long j=1;j<=n;j++){
            if(b[i][j]==0){
                s1++;
                if(bbb(i,j)){
					s2++;
				}
                aaa(i,j);
            }
        }
    }
    cout<<s1-s2;
    return 0;
}
```
2024/8/16 10:53
加载中...