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;
}