40分请求各位前辈指点
查看原帖
40分请求各位前辈指点
467322
A1520203870楼主2022/3/23 19:42
#include<iostream>
using namespace std;
char a[110][110];
int r,c,k;
long long sum = 0;//sum表示总方案数
int main() {
	cin >> r >> c >>k;//r行c列
	for (int i = 0; i < r; i++) {
		for (int j = 0; j < c; j++)
			cin >> a[i][j];
	}
	for (int i = 0; i < r; i++) {//行到列遍历
		int x = 0;
		for (int j = 0; j < c; j++) {
			if (a[i][j] == '.') {
				x++;
				if (k == 1)//在行到列的循环中对k=1的情况进行特判
					sum++;
			}
			else
				x=0;
			if (x == k&&k!=1) {
				sum++;
				x = 1;//存在共有的点
			}
		}
	}
	for (int i = 0; i < c; i++) {//列到行遍历
		int x = 0;
		for (int j = 0; j <r; j++) {
			if (a[j][i] == '.') {
				x++;
			}
			else
				x = 0;
			if (x == k&&k!=1) {
				sum++;
				x = 1;
			}
		}
	}
	cout << sum;
}
```cpp
2022/3/23 19:42
加载中...