矩阵中寻找好子矩阵
题目描述
小 A 有一个 n 行 m 列的矩阵 A。
小 A 认为一个 2×2 的矩阵 D 是好的,当且仅当 D1,1×D2,2=D1,2×D2,1。其中 Di,j 表示矩阵 D 的第 i 行第 j 列的元素。
小 A 想知道 A 中有多少个好的子矩阵。
输入格式
第一行,两个正整数 n,m。
接下来 n 行,每行 m 个整数 Ai,1,Ai,2,…,Ai,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
本题是一道比较基础的模拟题
按照提议模拟即可
重要代码
for(int i=0;i<n-1;i++)
{
for(int j=0;j<m-1;j++)
{
if(a[i][j]*a[i+1][j+1]==a[i+1][j]*a[i][j+1])
{
sum++;
}
}
}
总代码
#include <bits/stdc++.h>
using namespace std;
int n,a[501][501],m,sum;
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>a[i][j];
}
}
for(int i=0;i<n-1;i++)
{
for(int j=0;j<m-1;j++)
{
if(a[i][j]*a[i+1][j+1]==a[i+1][j]*a[i][j+1])
{
sum++;
}
}
}
cout<<sum;
return 0;
}