0分求调,AC必关
查看原帖
0分求调,AC必关
1045833
__SSY__楼主2025/1/22 11:17

CODE:

#include<bits/stdc++.h>
using namespace std;
const int N=10005;
char a[N][N];
int sum[N][N];
int ans;
int main(){
	int r,c,d,k;
	scanf("%d%d%d%d",&r,&c,&d,&k);
	for(int i=1;i<=r;i++){
		scanf("%s",a[i]+1);
		for(int j=1;j<=c;j++){
			if(a[i][j]=='S'){
				sum[max(1,i-d)][max(1,j-d)]++;
				sum[max(1,i-d)][min(c,j+d)+1]--;
				sum[min(r,i+d)+1][min(c,j+d)+1]++;
				sum[min(r,i+d)+1][max(1,j-d)]--;
			}
		}
	}
	for(int i=1;i<=r;i++)
        for(int j=1;j<=c;j++){
            sum[i][j]+=(sum[i-1][j-1]+sum[i-1][j]+sum[i][j-1]);
            if(sum[i][j]>=k&&a[i][j]=='M')
                ans++;
        }
	printf("%d",ans);
	return 0;
}
2025/1/22 11:17
加载中...