小学生求助,请各位老师帮忙看看
查看原帖
小学生求助,请各位老师帮忙看看
463956
incra楼主2021/9/11 09:31

80分,不知道哪错了。

#include <bits/stdc++.h>
using namespace std;
const int N = 110;
int n,m,k,ans = 0;
int mp[N][N];
int dfs (int x,int y) {
	int sum = 2;
	for (int i = 0;i < k;i++) {
		if (mp[x+i][y] != 0) {
			sum --;
			break;
		}
	}
	for (int i = 0;i < k;i++) {
		if (mp[x][y+i] != 0) {
			sum --;
			break;
		}
	}
	return sum;
}
int main ()	{
	memset (mp,0xff,sizeof (mp));
	cin >> n >> m >> k;
	for (int i = 1;i <= n;i++) {
		for (int j = 1;j <= n;j++) {
			char ch;
			cin >> ch;
			if (ch == '.') mp[i][j] = 0;
			else mp[i][j] = 1;
		}
	}
	for (int i = 1;i <= n;i++) {
		for (int j = 1;j <= m;j++) {
			if (mp[i][j] == 0) ans += dfs (i,j);
		}
	}
	cout << ans << endl;
	return 0;
}
2021/9/11 09:31
加载中...