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

题目描述

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

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

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

输入

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

接下来 n 行,每行 m 个整数

对于所有测试点,保证 1≤n≤500,1≤m≤500,−100≤≤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

放在这里要变化为:

cpp 复制代码
a[i][j]*a[i+1][j+1]==a[i][j+1]*a[i+1][j]

示例代码:

cpp 复制代码
#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;
}
相关推荐
曼巴UE519 小时前
UE5 C++ 第三方动态库的使用
开发语言·c++
C语言小火车19 小时前
【C++八股文】数据结构篇
数据结构·数据库·c++·c++八股文
利以檀本人(梦泽不忙)20 小时前
#T1359. 围成面积
c++·程序人生·算法
汉克老师21 小时前
第十四届蓝桥杯青少组C++国赛[2023.5.28]第二部分编程题(4、 数独填数)
c++·蓝桥杯·蓝桥杯c++·c++蓝桥杯
闻缺陷则喜何志丹21 小时前
【线段树 懒删除堆】P12372 [蓝桥杯 2022 省 Python B] 最优清零方案|普及+
数据结构·c++·线段树·懒删除堆
闻缺陷则喜何志丹21 小时前
【 线段树】P12347 [蓝桥杯 2025 省 A 第二场] 栈与乘积|普及+
数据结构·c++·蓝桥杯·线段树·洛谷
徐归阳21 小时前
数组本身的深入解析
数据结构·c++·算法
白榆!21 小时前
string类的实现
开发语言·c++·算法
励志五个月成为嵌入式糕手21 小时前
0904 类的继承
开发语言·c++
睡不醒的kun1 天前
leetcode算法刷题的第二十六天
数据结构·c++·算法·leetcode·职场和发展·贪心算法