ZlycerQan的 八云蓝(ran )

八云蓝(ran )

【题目背景】
“哎呀哎呀~幽幽子送我的那个古瓷器。。。怎么成了碎片啊”
八云蓝捂住头趴在地上,身边的八云紫正拿着她那把洋伞,砰砰地敲着蓝的
头。
“说过多少次了,管好你那大尾巴!”
“呜呜呜。。。我不敢了。”
“记得 300 年前那次。。你好像也是这么说的吧?”
“呜呜呜。。“
“这是我对你‘爱的形式’啊,你可要好好接受!快起来,教橙数学去!”
【问题描述】
无奈的八云蓝只得从地上爬起来,到了橙的身边,这次橙的题目不在是一道
数学题了,而是一道非常奇怪的题。
具体的, 有两个 n n* 的正方形矩阵,
j i
a 表示第 1 个矩阵第 i 行第 j 列的数,
j i
b
表示第 2 个矩阵第 i 行第 j 列的数,你需要求出两个矩阵中完全相同的两个最大
子正方形的边长(相同是指长宽相同且每个位置的数均相等)。
【输入格式】
第一行一个正整数 n 。
接下来 n 行,每行 n 个数,为第一个矩阵。
接下来 n 行,每行 n 个数,为第二个矩阵。
【输出格式】
一行一个整数,表示最大子矩阵的边长。
【样例 1 1 输入】
3
1 2 4
4 5 6
9 9 8
7 4 3
2 1 2
2 4 5
【样例 1 1 输出】
这里写图片描述

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
#define MAXN 51
int a[MAXN][MAXN],b[MAXN][MAXN];

inline void read(int &x){
    x=0; int f=1; char c=getchar();
    while(c>'9'||c<'0'){ if(c=='-')f=-1; c=getchar(); }
    while(c>='0'&&c<='9'){ x=x*10+c-'0'; c=getchar(); } x*=f;
}
inline bool Judge(int len,int x,int y,int p,int q){
    for(int w=0;w<len;++w)
        for(int c=0;c<len;++c)
            if(a[x+w][y+c]!=b[p+w][q+c]) return false;
    return true;
}

int Main(){
    freopen("ran.in","r",stdin);
    freopen("ran.out","w",stdout);
    int n; read(n);
    register int i,j;
    for(i=1;i<=n;++i) for(j=1;j<=n;++j) read(a[i][j]);
    for(i=1;i<=n;++i) for(j=1;j<=n;++j) read(b[i][j]);
    for(i=n;i>=1;i--)
        for(j=1;j<=n-i+1;++j)
            for(int k=1;k<=n-i+1;++k)//
                for(int l=1;l<=n-i+1;++l)
                    for(int h=1;h<=n-i+1;++h){
                        bool flag=true;
                        flag=Judge(i,j,k,l,h);
                        if(flag==true){
                            printf("%d\n",i);
                            return 0;
                        }
                    }
    printf("0\n");
    return 0;
}
int Aptal_is_My_Son=Main();
int main(int argc,char *argv[]){ ; }

N^7暴力,可以AC,就是要注意枚举一个边长,边长从大到小枚举,一旦有验证通过的直接return 0

泽勒钱说题目忘记从哪里搬得了。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七情六欲·

学生党不容易~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值