绝对值最小子矩阵
#include <iostream> #include<cmath> using namespace std; int a[101][101]; int b[101][101]; int row,col; int m,n,r,s; int min_=12345632; //全局的,不能放在f里面 int f(int hang,int lie) { int sum=0; for(int i=1;i<=r;i++) { for(int j=1;j<=s;j++) { sum+=abs(a[i+hang-1][j+lie-1]-b[i][j]); } } if(sum<min_) { row=hang; col=lie; min_=sum; } } int main() { cin>>m>>n; for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) cin>>a[i][j]; cin>>r>>s; for(int i=1;i<=r;i++) for(int j=1;j<=s;j++) cin>>b[i][j]; for(int i=1;i<=m-r+1;i++) //处理函数 for(int j=1;j<=n-s+1;j++) f(i,j); for(int i=0;i<r;i++) { for(int j=0;j<s;j++) cout<<a[i+row][j+col]<<" "; cout<<endl; } return 0; }