题目描述

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

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐