官方题解|变色龙
2025-04-03 10:48:29
发布于:浙江
1阅读
0回复
0点赞
模拟
题目描述,给定两个 的矩阵,求两个矩阵中的有多少个相同位置的大小为 的二维矩阵是不同的,由于n,m比较小,因此可以直接枚举左上角的点,然后枚举两个矩阵相应位置的 矩阵的点,如果有不同就加入统计。
时间复杂度 O()
代码
#include<bits/stdc++.h>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
vector<string> v1(n + 1), v2(n + 1);
for (int i = 1; i <= n; i++) {
cin >> v1[i];
v1[i] = " " + v1[i];
}
for (int i = 1; i <= n; i++) {
cin >> v2[i];
v2[i] = " " + v2[i];
}
int t = 0;
//枚举左上角点的位置;
for (int i = 1; i <= n - m + 1; i++) {
for (int j = 1; j <= n - m + 1; j++) {
bool f = false;
for (int k = i; k <= i + m - 1; k++) {
for (int l = j; l <= j + m - 1; l++) {
if (v1[k][l] != v2[k][l]) t++, f = true;
if (f) break;
}
if (f) break;
}
}
}
cout << t << endl;
}
这里空空如也
有帮助,赞一个