原题链接:最匹配的矩阵
解题思路:
注意事项:
本题较难
参考代码:
#include <stdio.h> #include <stdlib.h> #include <math.h> using namespace std; int main() { int m,n,r,s,max,maxi=0,maxj=0,i,j,k,l, temp=0, **A, **B; scanf("%d %d", &m, &n); A = (int**)malloc(sizeof(int*)*m); for(i=0;i<m;i++) { A[i]=(int*)malloc(sizeof(int)*n); for(j=0;j<n;j++) { scanf("%d", &A[i][j]); } } scanf("%d %d", &r, &s); B = (int**)malloc(sizeof(int*)*r); for(i=0;i<r;i++) { B[i]=(int*)malloc(sizeof(int)*s); for(j=0;j<s;j++) { scanf("%d", &B[i][j]); } } max = r*s*100; for(k=0;k<=m-r;k++) { for(l=0;l<=n-s;l++) { temp = 0; for(i=k;i<k+r;i++) { for(j=l;j<l+s;j++) { temp += fabs(A[i][j]-B[i-k][j-l]); } } if(temp<max){ max=temp; maxi=k; maxj=l; } } } for(i=maxi;i<maxi+r;i++) { for(j=maxj;j<maxj+s;j++) { printf("%d ", A[i][j]); } printf("\n"); } return 0; }
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复