求改
查看原帖
求改
1772207
BSD_LSR楼主2025/6/21 14:03

全RE,求大佬改

//#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<cmath>
#include<vector>
#include<iomanip>
#include<algorithm>
using namespace std;
char c[1003][1003];
int main(){
    int a,b,d[1003]={0},q=0,dd[1003]={0},max=-1;
    
    cin>>a>>b;
    for(int i=0;i<a;++i){
        for(int j=0;j<b;++j){
            cin>>c[i][j];
            if(c[i][j]=='#'){d[q]=i;dd[q]=j;q++;}
        }
    }
    	int ans=0;
        for(int j=0;j<a;++j){
        	for(int k=0;k<b;++k){
        		int as=1;
        		if(j>0&&c[j-1][k]=='#')as=0;
        		if(j<a-1&&c[j+1][k]=='#')as=0;
        		if(k>0&&c[j][k-1]=='#')as=0;
        		if(k<b-1&&c[j][k+1]=='#')as=0;
        		if(as)ans++;
			}
		}
		max=ans;
    
    for(int i=0;i<q;++i){
    	int ans=0;
        c[d[i]][dd[i]]='.';
        for(int j=0;j<a;++j){
        	for(int k=0;k<b;++k){
        		int as=1;
        		if(j>0&&c[j-1][k]=='#')as=0;
        		if(j<a-1&&c[j+1][k]=='#')as=0;
        		if(k>0&&c[j][k-1]=='#')as=0;
        		if(k<b-1&&c[j][k+1]=='#')as=0;
        		if(as)ans++;
			}
		}
		if(ans>max)max=ans;
		c[d[i]][dd[i]]='#';
    }
    cout<<max;
    return 0;
}
2025/6/21 14:03
加载中...