1 条题解

  • 0
    @ 2026-10-18 18:37:43

    G4016 [GESP202503 四级] 二阶矩阵 题解

    知识点:二维数组、枚举、矩阵。

    解题思路

    枚举所有相邻2×2子矩阵,判断主对角乘积是否等于副对角乘积,满足则计数。

    为什么正确

    每个相邻2×2矩阵对应唯一左上角,判定公式正是题目要求。

    易错点

    只能取相邻行列;不足两行或两列时答案为0,乘积类型应遵守题目数值范围。

    复杂度

    时间O(nm),空间O(nm)。

    参考代码(C++17)

    #include<bits/stdc++.h>
    
    using namespace std;
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        int n,m;
        cin>>n>>m;
        vector<vector<int>>a(n,vector<int>(m));
        for(auto &row:a)for(int &x:row)cin>>x;
        int ans=0;
        for(int i=0;i+1<n;i++)for(int j=0;j+1<m;j++)ans+=a[i][j]*a[i+1][j+1]==a[i+1][j]*a[i][j+1];
        cout<<ans;
    }
    

    说明

    本题解为配套教学整理,非官方题解。复杂度按本页参考实现计算,题库使用8个自行生成的测试点。

    • 1

    信息

    ID
    712
    时间
    1000ms
    内存
    512MiB
    难度
    进阶
    标签
    递交数
    1
    已通过
    1
    上传者