40分求调
查看原帖
40分求调
1097314
封禁用户楼主2024/5/20 21:16

感觉思路没错,请大佬救救蒟蒻……

#include<bits/stdc++.h>
using namespace std;
int n,m,k,ans;
char a[121][121];
bool vis[121][121];
int main(){
	memset(a,'-',sizeof(a));
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i+10][j+10];
	/*for(int i=1;i<=20;i++){
		for(int j=1;j<=20;j++) cout<<a[i][j];
		cout<<endl;
	}
	cout<<endl;*/
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(a[i+10][j+10]=='#'){
				vis[i+10][j+10]=false;
				for(int t=i+10-k;t<=i+10+k;t++) if(a[t][j+10]!='#') vis[t][j+10]=true;
				for(int t=j+10-k;t<=j+10+k;t++) if(a[i+10][t]!='#') vis[i+10][t]=true;
			}
		}
	}
	/*for(int i=1;i<=20;i++){
		for(int j=1;j<=20;j++){
			if(vis[i][j]) cout<<'@';
			else cout<<'-'; 
		}
		cout<<endl;
	}*/
	for(int i=1;i<=120;i++) for(int j=1;j<=120;j++) if(vis[i][j]) ans++;
	cout<<ans;
}
2024/5/20 21:16
加载中...