题目链接

我还是图样啊....比赛的时候没敢暴力去搜...

 #include <cstdio>
#include <cstdlib>
#include <cstring>
#include <map>
#include <ctime>
#include <cmath>
using namespace std;
#define LL __int64
char dp[][][];
int p[][];
int n,m;
int dfs(int x,int y,int step)
{
int i,j,k;
if(step == )
return ;
else if(step == )
return ;
if(x > n||y > m)
return ;
if(dp[x][y][step] == )
return ;
else if(dp[x][y][step] == )
return ;
int flag = ;
for(i = x,j = x+step-,k = ;k <= step/&&flag;i ++,j --,k ++)
{
if(p[i][y] == p[j][y]&&p[i][y] == p[i][y+step-])
;
else
flag = ;
}
for(i = y,j = y+step-,k = ;k <= step/&&flag;i ++,j --,k ++)
{
if(p[x][i] == p[x][j]&&p[x][i] == p[x+step-][i])
;
else
flag = ;
}
if(flag == )
{
dp[x][y][step] = ;
return ;
}
else if(flag)
{
return dp[x+][y+][step-] = dfs(x+,y+,step-);
}
return ;
}
int main()
{
int t,i,j,k,flag;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
memset(dp,,sizeof(dp));
for(i = ;i <= n;i ++)
{
for(j = ;j <= m;j ++)
{
scanf("%d",&p[i][j]);
}
}
flag = ;
for(i = min(n,m);i >= &&flag;i --)
{
for(j = ;j <= n-i+&&flag;j ++)
{
for(k = ;k <= m-i+&&flag;k ++)
{
if(dfs(j,k,i) == )
flag = ;
}
}
if(!flag) break;
}
printf("%d\n",i);
}
return ;
}

HDU 4618 Palindrome Sub-Array(DP)的更多相关文章

  1. HDU 6156 - Palindrome Function [ 数位DP ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛

    普通的数位DP计算回文串个数 /* HDU 6156 - Palindrome Function [ 数位DP ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛 2-36进制下回文串个数 */ ...

  2. HDU 4618 - Palindrome Sub-Array(2013MUTC2-1008)(DP)

    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 ...

  3. HDU 4618 Palindrome Sub-Array 暴力

    Palindrome Sub-Array 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=4618 Description A palindrome s ...

  4. hdu 4618 Palindrome Sub-Array

    http://acm.hdu.edu.cn/showproblem.php?pid=4618 直接DP+记忆化 虽然时间复杂度看起来是300^4 但实际执行起来要远远小于这个值 所有可以水过 代码: ...

  5. HDU 4618 Palindrome Sub-Array (2013多校2 1008 暴力)

    Palindrome Sub-Array Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Oth ...

  6. HDU 4632 Palindrome subsequence(区间DP求回文子序列数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4632 题目大意:给你若干个字符串,回答每个字符串有多少个回文子序列(可以不连续的子串).解题思路: 设 ...

  7. HDU 4632 Palindrome subsequence(区间dp,回文串,字符处理)

    题目 参考自博客:http://blog.csdn.net/u011498819/article/details/38356675 题意:查找这样的子回文字符串(未必连续,但是有从左向右的顺序)个数. ...

  8. HDU 4632 Palindrome subsequence (区间DP)

    题意 给定一个字符串,问有多少个回文子串(两个子串可以一样). 思路 注意到任意一个回文子序列收尾两个字符一定是相同的,于是可以区间dp,用dp[i][j]表示原字符串中[i,j]位置中出现的回文子序 ...

  9. HDU 1003 Max Sum --- 经典DP

    HDU 1003    相关链接   HDU 1231题解 题目大意:给定序列个数n及n个数,求该序列的最大连续子序列的和,要求输出最大连续子序列的和以及子序列的首位位置 解题思路:经典DP,可以定义 ...

随机推荐

  1. 推荐一个linux下的web压力测试工具神器webbench

    推荐一个linux下的web压力测试工具神器webbench2014-04-30 09:35:29   来源:   评论:0 点击:880 用多了apache的ab工具之后你就会发现ab存在很多问题, ...

  2. 【SpringMVC】SpringMVC系列5之@RequestHeader 映射请求头属性值

    5.@RequestHeader 映射请求头属性值 5.1.概述 请求头包含了若干个属性,服务器可据此获知客户端的信息,通过 @RequestHeader 即可将请求头中的属性值绑定到处理方法的入参中 ...

  3. String to Integer

    Implement function atoi to convert a string to an integer. If no valid conversion could be performed ...

  4. AngularJS服务中serivce,factory,provider的区别

    Angular服务是一个由服务工厂创建的单例对象.这些服务工厂是由 service provider 依次创建的.而service providers是构造函数.它们必须包含一个$get属性用于在实例 ...

  5. python动态获取对象的属性和方法

    http://blog.csdn.net/kenkywu/article/details/6822220首先通过一个例子来看一下本文中可能用到的对象和相关概念.01     #coding: UTF- ...

  6. ext上传文件到mysql上

    不废话,上代码: controller如下: /** * 上传附件 * @param request * @param baseBlob * @param response */ @RequestMa ...

  7. mysql用命令行导入sql文件

    前面说到了用navicat工具导入导出数据库,今天给同事导入数据库的时候,发现到不进去,好多错误,情急之下,用命令行导入的 1.打开mysql的服务.cmd-->net start mysql ...

  8. java 格式化时间

    java.text.DateFormat format1 = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); form ...

  9. 获取Assets目录下的图片显示并上传

    package com.jingle.getlocal; import java.io.ByteArrayOutputStream; import java.io.InputStream; impor ...

  10. Java Hour 54 Spring Framework 1

    总之,Srping Framework 很好很强大. 1 Spring Framework 介绍 省下你和transcation APIs, JMX APIs, JMS APIs 交流的功夫. 1.1 ...