ABC B 求调
  • 板块学术版
  • 楼主Qiu101029
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/12/7 21:45
  • 上次更新2024/12/8 09:28:27
查看原帖
ABC B 求调
1200904
Qiu101029楼主2024/12/7 21:45
#include<cstdio>
#include<vector>
#include<cstring>
#include<algorithm>
using namespace std;
vector<pair<int,int> >vec;
char mp[15][15];
bool st[15][15];
int ans;
int main(){
	int n,m,d;scanf("%d%d%d",&n,&m,&d);
	for(int i=1;i<=n;i++) scanf("%s",mp[i]+1);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(mp[i][j]=='.') vec.push_back(make_pair(i,j));
		}
	}
	int k=vec.size();
	for(int i=0;i<k;i++){
		for(int j=i+1;j<k;j++){
			memset(st,0,sizeof(st));int a,b,x,y,cnt=0;
			pair<int,int>t=vec[i],s=vec[j];
			for(int p=t.first-d;p<=t.first+d;p++){
				for(int q=t.second-d+abs(p-t.first);q<=t.second+d-abs(p-t.first);q++){
					if(p<1||p>n||q<1||q>m) continue;
					if(st[p][q]!='#') st[p][q]=1;
				}
			}
			for(int p=s.first-d;p<=s.first+d;p++){
				for(int q=s.second-d+abs(p-s.first);q<=s.second+d-abs(p-s.first);q++){
					if(p<1||p>n||q<1||q>m) continue;
					if(st[p][q]!='#') st[p][q]=1;
				}
			}
			for(int p=1;p<=n;p++){
				for(int q=1;q<=m;q++){
					if(st[p][q]) cnt++;
				}
			}
			ans=max(ans,cnt);
		}
	}
	printf("%d",ans);
	return 0;
}

样例没过,且可能 TLE

2024/12/7 21:45
加载中...