当前位置: 首页 > news >正文

[GESP202503 四级] 二阶矩阵c++

题目描述

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

小 A 认为一个 2×2 的矩阵 D 是好的,当且仅当 D_{1,1}\times D_{2,2}=D_{1,2}\times D_{2,1}。其中 D_{i,j} 表示矩阵 D 的第 i 行第 j 列的元素。

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

输入

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

接下来 n 行,每行 m 个整数 A_{i,1} ,A_{i,2},...,A_{i,m}

对于所有测试点,保证 1≤n≤500,1≤m≤500,−100≤A_{i,j}≤100

输出

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

样例输入

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

样例输出

2

样例解释

样例中好的子矩阵如下:

分析

只需循环编号部分作为2×2矩阵的左上角顶点(其余无法形成完整的2×2矩阵),所以只需循环到n-1与m-1

D_{1,1}\times D_{2,2}=D_{1,2}\times D_{2,1}放在这里要变化为:

a[i][j]*a[i+1][j+1]==a[i][j+1]*a[i+1][j]

示例代码:

#include<bits/stdc++.h>
using namespace std;
int main(){long long n,m,a[501][501],s=0;cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>a[i][j];}}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][j+1]*a[i+1][j]){s++;}}}cout<<s;return 0;
}

相关文章:

  • [python]非零基础上手之文件操作
  • 【人工智能学习笔记 二】 MCP 和 Function Calling的区别与联系
  • 动态规划(5)路径问题--剑指offer -珠宝的最大值
  • 【AI论文】Phi-4-reasoning技术报告
  • nginx 核心功能 02
  • 软件架构方之旅(5):SAAM 在软件技术架构评估中的应用与发展研究
  • 基于python生成taskc语言文件--时间片轮询
  • 0.0973585?探究ts_rank的score为什么这么低
  • KaiwuDB X 遨博智能 | 构建智能产线监测管理新系统
  • LLVM Pass
  • GTS-400 系列运动控制器板卡介绍(十五)---运动模式二
  • 高效便捷的定时关机与任务管理工具
  • Room + WorkManager的Android学习总结
  • el-input Vue 3 focus聚焦
  • MAC 地址
  • NaVILA: Legged Robot Vision-Language-ActionModel for Navigation
  • 【Java学习笔记】构造器
  • Linux系统中的时间同步服务
  • 线程与进程深度解析:从fork行为到生产者-消费者模型
  • 网络Tips20-003
  • 一金两银一铜!中国田径从柯桥望向世界大赛
  • 新加坡国会选举投票抽样结果公布,执政党已获超半数议席
  • 青海大学常务副校长(正厅级)任延明已任省卫健委党组书记
  • “五一”第三天郑州铁路局预计发送旅客76万人
  • 光明日报社论:用你我的匠心,托举起繁盛的中国
  • 新华时评:防范安全事故须臾不可放松