hdu 4618 Palindrome Sub-Array 多校第二场

来源:互联网 发布:程控电话交换机编程 编辑:程序博客网 时间:2024/06/06 02:47

简单题  直接暴力。。。。。

#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAXN=310;int mat[MAXN][MAXN];int n,m;bool ok(int len){    for(int i=0;i<=n-len;i++)    {        for(int j=0;j<=m-len;j++)        {            int flag=1;            for(int k=0;k<len;k++)            {                int l=j,r=j+len-1;                while(l<r)                {                    if(mat[i+k][l]==mat[i+k][r])                    {                        l++,r--;                    }                    else                    {                        flag=0;                        break;                    }                }                if(!flag) break;            }            if(!flag) continue;            for(int k=0;k<len;k++)            {                int l=i,r=i+len-1;                while(l<r)                {                    if(mat[l][j+k]==mat[r][j+k])                        l++,r--;                    else                    {                        flag=0;                        break;                    }                }                if(!flag) break;            }            if(flag)            return true;        }    }    return false;}int main(){    int T;    scanf("%d",&T);    while(T--)    {        scanf("%d%d",&n,&m);        for(int i=0;i<n;i++)            for(int j=0;j<m;j++)            scanf("%d",&mat[i][j]);        int ans=min(n,m);        while(!ok(ans)) ans--;        printf("%d\n",ans);    }}