巴中网站建设网站推广,宣传广告制作,网页游戏都有哪些,企业建设网站需要注意什么手续题干#xff1a;
给定一个N x M的矩阵#xff0c;请你数一数其中有多少个3 x 3的子矩阵可以构成三阶幻方#xff1f;
如果3 x 3的矩阵中每一行、每一列和两条对角线上的3个数之和都相等#xff0c;我们就认为其构成一个三阶幻方。
Input
第一行包含两个整数N和M。(1 …题干
给定一个N x M的矩阵请你数一数其中有多少个3 x 3的子矩阵可以构成三阶幻方
如果3 x 3的矩阵中每一行、每一列和两条对角线上的3个数之和都相等我们就认为其构成一个三阶幻方。
Input
第一行包含两个整数N和M。(1 ≤ N, M ≤ 100)
以下N行M列包含一个N x M的矩阵A。(1 ≤ Aij ≤ 100)
Output
输出矩阵中包含多少个三阶幻方。
Sample Input
5 5
4 9 2 1 8
3 5 7 6 2
8 1 6 9 3
2 3 3 6 9
5 6 9 3 6
Sample Output
2
解题报告 直接暴力就好了啊。
AC代码
#includebits/stdc.husing namespace std;
int maze[105][105];
bool fit(int x,int y) {int a[10];a[1]maze[x][y]maze[x1][y]maze[x2][y];a[2]maze[x][y1]maze[x1][y1]maze[x2][y1];a[3]maze[x][y2]maze[x1][y2]maze[x2][y2];a[4]maze[x][y]maze[x][y1]maze[x][y2];a[5]maze[x1][y]maze[x1][y1]maze[x1][y2];a[6]maze[x2][y]maze[x2][y1]maze[x2][y2];a[7]maze[x][y]maze[x1][y1]maze[x2][y2];a[8]maze[x][y2]maze[x1][y1]maze[x2][y];for(int i 1; i8; i) {if(a[i] ! a[1]) return 0;}return 1;
}
int main()
{int n,m;cinnm;for(int i 1; in; i) {for(int j 1; jm; j) {scanf(%1d,maze[i][j]);}}if(n 3 || m 3 ) {printf(0\n);return 0 ;}int ans 0;for(int i 1; in-2; i) {for(int j 1; jm-2; j) {if(fit(i,j)) ans;}}printf(%d\n,ans);return 0 ;
}