BUPT复试专题—图像压缩存储(2015)

题目描述

以二维数组表示图像,其值只有0、1两种,寻找两幅图像中最大的相同方阵php

 

输入

第一行输入一个n,接下来的2n行输入两个n*n数组,寻找一个最大的m*m子区域,使得两个数组在该子区域彻底相同

输出

输出m

样例输入

4 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 0

样例输出

2

来源

2015机考C题 ios

#include<iostream> #include<cstdio> #include<cmath> #include<string>
using namespace std; int a[100][100]; int donser(int num,int sum,int real) { if(sum<1) return 0; for(int i=1;i<=num-sum+1;i++) { for(int j=1;j<=num-sum+1;j++) { if(a[i][j]==0) { real=1; for(int m=i;m<=i+sum;m++) { for(int n=j;n<=i+sum;n++) { if(a[m][n]!=0||m>num+1||n>num+1) { real=0; } } } } if(real==1) return sum; } } sum--; donser(num,sum,0); } int main() { int num=0,sum=0; while(scanf("%d",&num)!=EOF) { for(int i=1;i<=num;i++) for(int j=1;j<=num;j++) scanf("%d",&a[i][j]); for(int i=1;i<=num;i++) { for(int j=1;j<=num;j++) { int temp; scanf("%d",&temp); a[i][j]=abs(a[i][j]-temp); if(a[i][j]==0) sum++; } } sum=sqrt(sum); cout<<donser(num,sum,0)<<endl; } return 0; }
相关文章
相关标签/搜索