d(i,j,k)表示左上角坐标为(i,j),k为正方形边长

d(i,j,k)=1,如果d(i+1,j+1,k-2)=0,且上下两个外围的相等且回文,左右两个外围的相等且回文;否则d(i,j,k)=0

d(i,j,0)=1

d(i,j,1)=1

#include <stdio.h>
#include <string.h>
int a[310][310];
bool d[310][310][310];
int check(int x,int y,int l)
{for(int i=y;i<=y+l-1;i++)if(a[x][i]!=a[x+l-1][i])return 0;for(int i=x;i<=x+l-1;i++)if(a[i][y]!=a[i][y+l-1])return 0;for(int i=x;i<=x+l/2;i++)if(a[i][y]!=a[x+l-1-(i-x)][y])return 0;for(int i=y;i<=y+l/2;i++)if(a[x][i]!=a[x][y+l-1-(i-y)])return 0;return 1;
}int main()
{int T;int n,m;scanf("%d",&T);while(T--){scanf("%d%d",&n,&m);memset(d,0,sizeof(d));for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){scanf("%d",&a[i][j]);d[i][j][0]=1;d[i][j][1]=1;}}int l=n<m?n:m;int ans=1;for(int k=2;k<=l;k++){for(int i=1;i<=n;i++){if(i+k-1>n)break;for(int j=1;j<=m;j++){if(j+k-1>m)break;if(d[i+1][j+1][k-2]&&check(i,j,k)){d[i][j][k]=1;if(k>ans)ans=k;}}}}printf("%d\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/jiangu66/p/3221901.html

HDU 4618 - Palindrome Sub-Array(2013MUTC2-1008)(DP)相关推荐

  1. POJ 1038 Bugs Integrated Inc (复杂的状压DP)

    \(POJ~1038~~*Bugs~Integrated~Inc:\) (复杂的状压DP) \(solution:\) 很纠结的一道题目,写了大半天,就想练练手,结果这手生的.其实根据之前那道炮兵阵地 ...

  2. 【HDU - 2717】【POJ - 3278】Catch That Cow (经典bfs,类似dp)

    题干: Farmer John has been informed of the location of a fugitive cow and wants to catch her immediate ...

  3. 黑白树(牛客网+树形dp)

    链接:https://ac.nowcoder.com/acm/problem/13249 来源:牛客网 题目描述 一棵n个点的有根树,1号点为根,相邻的两个节点之间的距离为1.树上每个节点i对应一个值 ...

  4. 【POJ - 1661】Help Jimmy(记忆化搜索,dp)

    题干: Help Jimmy" 是在下图所示的场景上完成的游戏. 场景中包括多个长度和高度各不相同的平台.地面是最低的平台,高度为零,长度无限. Jimmy老鼠在时刻0从高于所有平台的某处开 ...

  5. LeetCode 1723. 完成所有工作的最短时间(DFS+剪枝 / 状态压缩DP)

    文章目录 1. 题目 2. 解题 2.1 DFS 2.2 状态压缩DP 265 / 3871, 前6.85% 前3题题解: LeetCode 5649. 解码异或后的数组(位运算) LeetCode ...

  6. hihoCoder #1162 : 骨牌覆盖问题·三 (矩阵快速幂,DP)

    题意:有一个k*n的棋盘,要求用1*2的骨牌来铺满,有多少种方案?(k<8,n<100000001) 思路: 由于k是比较小,但是又不那么小,可以专门构造这样的一个矩阵M,使得只要我们有一 ...

  7. 最短Hamilton路径(哈密顿图,状压dp)

    题目: 给定一张 n 个点的带权无向图,点从 0~n-1 标号,求起点 0 到终点 n-1 的最短Hamilton路径. Hamilton路径的定义是从 0 到 n-1 不重不漏地经过每个点恰好一次. ...

  8. 道路覆盖 (二分答案+状压DP)

    Description: Tar 把一段凹凸不平的路分成了高度不同的 N 段(每一段相同高度),并用 H[i] 表示第 i 段高度.现在 Tar 一共有 n 种泥土可用,它们都能覆盖给定的连续的 k ...

  9. 涂抹果酱(三进制状压dp)

    涂抹果酱(状压dp) 题目描述 输入描述: 输出描述: 示例 输入 输出 说明 备注: 题目思路: 代码 欢迎关注微信公众号:Java后台开发 题目描述 Tyvj两周年庆典要到了,Sam想为Tyvj做 ...

最新文章

  1. 树莓内核驱动io框架
  2. EC20模块、主机休眠唤醒机制
  3. django安装--mac系统
  4. 阿里云上万个 Kubernetes 集群大规模管理实践
  5. android gridview控件使用详解_作为Android 开发者该如何进阶?
  6. python时间格式_python 格式化日期
  7. php 字符串与数字相加,注意!PHP中字符串与数字的比较
  8. 为了梦想开始历练之清除浮动篇
  9. pandas 替换 某列大于_Pandas使用总结
  10. python 分类变量xgboost_用于可解释机器学习的四个Python库
  11. 恒丰银行微服务架构优化实践
  12. redux-saga源码解析
  13. 成都学计算机的大学有哪些专业学校,成都市计算机类专业开设的院校有哪些
  14. CAD如何绘制带有弧形的箭头
  15. 【数据库认证】OCM准备及考试经验总结
  16. c语言进行数据统计分析的研究报告,【干货分享】CCTS:临床试验统计分析计划及统计分析报告...
  17. 个人秋招面经——商汤
  18. ABB工业机器人焊接编程程序详细介绍
  19. 中英文维基百科语料上的Word2Vec实验
  20. 考研英语阅读理解做题技巧(1):例证题

热门文章

  1. No new data sinks have been defined since the last execution.
  2. python在函数中传入多个实参
  3. 苹果ios鸿蒙,苹果iOS界面一直都很美,鸿蒙系统在这方面,让人担心
  4. python中可以作为定界符_在 Python 中,字典和集合都是用一对 作为定界符,字典的每个元素有两部分组成,即 和 ,其中 不允许重复。_学小易找答案...
  5. mybatis中foreach标签详解
  6. Mysql的命令行操作
  7. puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  8. SpringCloud学习成长之路 五 路由器网关
  9. 恍然小悟,去掉Excel的worksheet(工作表)保护的新方法
  10. 自建邮件服务器更给力?