CF1106A Lunar New Year and Cross Counting 题解

Content

试求出在一个 \(n\times n\) 的地图 \(M\) 中,满足 \(1\leqslant i,j\leqslant n\)\(M_{i,j}=M_{i+1,j+1}=M_{i-1,j+1}=M_{i-1,j-1}=M_{i+1,j-1}=\) X 这个字符的 \((i,j)\) 的对数。

数据范围:\(1\leqslant n\leqslant 500\),字符只包含 X 或者 .

Solution

直接暴力枚举判断就好了,建议用 \(i=1\sim n,j=1\sim n\) 的方式读入,再将数组开大点,就不需要考虑越界的问题了。具体见代码。

Code

int n, ans;
char a[507][507];

int main() {
	getint(n);
	_for(i, 1, n)	scanf("%s", a[i] + 1);
	_for(i, 1, n)
		_for(j, 1, n)
			if(a[i][j] == 'X' && a[i + 1][j + 1] == 'X' && a[i - 1][j + 1] == 'X' && a[i - 1][j - 1] == 'X' && a[i + 1][j - 1] == 'X')	ans++; 
	writeint(ans);
	return 0;
}
posted @ 2021-12-17 14:32  Eason_AC  阅读(37)  评论(0)    收藏  举报