1 条题解
-
0
#include <bits/stdc++.h> using namespace std; // [1] arr:存储输入的n行m列矩阵 int arr[1000][1000]; int main(){ int n,m; // [2] n:矩阵的行数,m:矩阵的列数 cin>>n>>m; // [3] 读取矩阵的行数和列数 // [4] 读取矩阵的n行m列元素,存入二维数组arr for(int i=0;i<n;i++) for(int j=0;j<m;j++) cin>>arr[i][j]; int sum=0; // [5] sum:统计满足条件的2×2子矩阵数量 // [6] 遍历矩阵中每个可能的2×2子矩阵的左上角位置(i,j) for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ // [7] 检查当前位置右下角是否仍在矩阵范围内(保证能构成2×2子矩阵) if(i+1<n && j+1<m ){ // [8] 判断该2×2子矩阵是否满足条件:D11*D22 == D12*D21 if(arr[i][j]*arr[i+1][j+1] == arr[i+1][j]*arr[i][j+1]){ sum++; // 满足条件则计数加1 } } } } cout<<sum; // [9] 输出满足条件的子矩阵总数 return 0; }
- 1
信息
- ID
- 949
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者