测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A28417. 二阶矩阵

填空题 较难

题目描述

二阶矩阵

题目描述

小 A 有一个n行m列的矩阵A。

小 A 认为一个2×2的矩阵D是好的,当且仅当D1,1×D2,2=D1,2×D2,1。其中Dij表示矩阵D的第i行第j列

的元素。

小 A 想知道 A中有多少个好的子矩阵。

输入格式

第一行,两个正整数n,m 。

接下来n行,每行m个整数Ai,1,Ai,2,...,A i,m。

输出格式

一行,一个整数,表示A中好的子矩阵的数量。

样例

输入样例 1

3 4
1 2 1 0
2 4 2 1
0 3 3 0

输出样例 1

2

样例解释

样例中的好的子矩阵如下:

数据范围

对于所有测试点,保证1≤n≤500,1≤m≤500,-100≤Ai,j≤100。

参考答案

#include <bits/stdc++.h> using namespace std; const int N = 505; int n, m; int a[N][N]; int ans; int main() { scanf("%d%d", &n, &m); assert(1 <= n && n <= 500 && 1 <= m && m <= 500); for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) { scanf("%d", &a[i][j]); assert(-100 <= a[i][j] && a[i][j] <= 100); } for (int i = 1; i < n; i++) for (int j = 1; j < m; j++) if (a[i][j] * a[i + 1][j + 1] == a[i + 1][j] * a[i][j + 1]) ans++; printf("%d\n", ans); return 0; }
上一题 下一题