2 条题解
- 
  1
#include<bits/stdc++.h> #define ll long long using namespace std; const int N=1e3+10; const int INF=0x3f3f3f3f; inline int read(){ll x=0,f=1;char ch=getchar();while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}return x*f;} ll n,m,cnt,dx[4]={1,-1,0,0},dy[4]={0,0,-1,1},sum,ans; char a[N][N]; bool check(ll x,ll y){ for(int i=0;i<4;i++){ ll xx=x+dx[i],yy=y+dy[i]; if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&a[xx][yy]=='#'){ return 0; } } return 1; } int main(){ //freopen(".in","r",stdin); //freopen(".out","w",stdout); 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]=='.'&&check(i,j)){ cnt++; } else if(a[i][j]=='#'){ a[i][j]='.'; sum=0; if(check(i,j)){ sum++; } for(int k=0;k<4;k++){ ll xx=i+dx[k],yy=j+dy[k]; if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&a[xx][yy]=='.'&&check(xx,yy)){ sum++; } } a[i][j]='#'; } ans=max(ans,sum); } } cout<<ans+cnt; } 
信息
- ID
 - 3314
 - 时间
 - 1000ms
 - 内存
 - 256MiB
 - 难度
 - 8
 - 标签
 - 递交数
 - 102
 - 已通过
 - 16
 - 上传者