zoukankan      html  css  js  c++  java
  • 图像压缩存储

    描述:以二维数组表示图像,其值只有0、1两种,寻找两幅图像中最大的相同部分

    输入:第一行输入一个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

    #include <iostream>
    #define N 100
    using namespace std;
    
    bool num(int b[N][N],int i,int j,int t){
        bool flag=true;
        for(int k=i;k<i+t;k++){
            for(int d=j;d<j+t;j++){
                if(b[k][d]==0){
                    flag=false;
                    break;
                }
            }
        }
        return flag;
    }
    
    int main()
    {
        int n;
        scanf("%d",&n);
        int a[N][N];
        for(int i=0;i<n;i++)
            for(int j=0;j<n;j++)
            scanf("%d",&a[i][j]);
        int temp;
        for(int i=0;i<n;i++){
                for(int j=0;j<n;j++){
                    scanf("%d",&temp);
                    a[i][j]=!(a[i][j]^temp);
                    }
        }
        int t=n;
        bool tmp=true;
        while(tmp){
        for(int i=0;i<n-t;i++){
            for(int j=0;j<n-t;j++){
               if(num(a,i,j,t)){
                tmp=false;
                break;
               }
            }
        }
        t--;
        }
    
        printf("%d",t+1);
        return 0;
    }

    P.S. 我做是做出来了,但这个的时间复杂度。。。O(n^4),也可以看到,实在太大了,我估计要是跑oj的话是要超时的。。。

  • 相关阅读:
    对象内存布局 (2)
    对象内存布局 (1)
    C++虚函数及虚函数表解析
    C++ inline 函数
    第十六章 贪心算法——0/1背包问题
    动态规划——活动选择问题
    第十六章 贪心算法——活动选择问题
    第十五章 动态规划——最优二叉搜索树
    Cannot load supported formats: Cannot run program "svn"
    idea 配置多个tomcat
  • 原文地址:https://www.cnblogs.com/xym4869/p/8658588.html
Copyright © 2011-2022 走看看