hdu4618 Palindrome Sub-Array dp+记忆化搜索 或者直接暴力
题意就是找一个 左右上下对称的正方形矩阵。
连接:http://acm.hdu.edu.cn/showproblem.php?pid=4618
没想到记忆+dp和暴力就能水过。。。
//记忆话搜索+dp
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std; int a[][];
char dp[][][];
int n,m;
int judge(int i,int j,int len)
{
int k;
if(i+len- >= n) return ;
if(j+len- >= m) return ;
for(k = ;k < len/;k++)
{
if(a[i+k][j] != a[i+len-k-][j])
return ;
}
for(k = ;k < len/;k++)
{
if(a[i][j+k] != a[i][j+len-k-])
return ;
}
return len;
}
int dfs(int i,int j,int len)
{
if(dp[i][j][len] != -)
return dp[i][j][len];
if(len == || len == )
return dp[i][j][len] = ;
int leap; if(judge(i,j,len))
{
leap = dfs(i+,j+,len-);
if(leap)
{
return dp[i][j][len] = ;
}
}
return dp[i][j][len] = ;
}
int main()
{
int t;
cin>>t;
int count = ;
while(t--)
{
count++;
int i,j;
scanf("%d %d",&n,&m);
for(i = ;i < n;i++)
for(j = ;j < m;j++)
scanf("%d",&a[i][j]); int len;
len = min(n,m);
int k; int ans;
ans = ;
int ai,bj;
memset(dp,-,sizeof(dp));
for(i = ;i < n;i++)
{
for(j = ;j < m;j++)
for(k = len;k >= ;k--)
{
if(k > ans)
{
if(dfs(i,j,k))
{
ans = k;
break;
}
}
}
}
printf("%d\n",ans);
}
return ;
}
暴力代码
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std; int a[][];
int dp[][][];
int n,m;
int judge(int i,int j,int len)
{
int k,p;
if(i+len- >= n) return ;
if(j+len- >= m) return ;
for(p = ;p < len;p++){
for(k = ;k < len/;k++)
{
if(a[i+k][j+p] != a[i+len-k-][j+p])
return ;
}
for(k = ;k < len/;k++)
{
if(a[i+p][j+k] != a[i+p][j+len-k-])
return ;
}
}
return len;
}
int main()
{
int t; cin>>t;
int count = ;
while(t--)
{
count++;
int i,j;
scanf("%d %d",&n,&m);
for(i = ;i < n;i++)
for(j = ;j < m;j++)
scanf("%d",&a[i][j]); int len;
len = min(n,m);
int k; int ans;
ans = ;
int ai,bj;
for(i = ;i < n;i++)
{
for(j = ;j < m;j++)
for(k = len;k >= ;k--)
{
if(k > ans)
{
if(judge(i,j,k))
{
ans = k;
break;
}
}
}
}
printf("%d\n",ans);
}
return ;
}
hdu4618 Palindrome Sub-Array dp+记忆化搜索 或者直接暴力的更多相关文章
- 【bzoj5123】[Lydsy12月赛]线段树的匹配 树形dp+记忆化搜索
题目描述 求一棵 $[1,n]$ 的线段树的最大匹配数目与方案数. $n\le 10^{18}$ 题解 树形dp+记忆化搜索 设 $f[l][r]$ 表示根节点为 $[l,r]$ 的线段树,匹配选择根 ...
- 【BZOJ】1415 [Noi2005]聪聪和可可 期望DP+记忆化搜索
[题意]给定无向图,聪聪和可可各自位于一点,可可每单位时间随机向周围走一步或停留,聪聪每单位时间追两步(先走),问追到可可的期望时间.n<=1000. [算法]期望DP+记忆化搜索 [题解]首先 ...
- [题解](树形dp/记忆化搜索)luogu_P1040_加分二叉树
树形dp/记忆化搜索 首先可以看出树形dp,因为第一个问题并不需要知道子树的样子, 然而第二个输出前序遍历,必须知道每个子树的根节点,需要在树形dp过程中记录,递归输出 那么如何求最大加分树——根据中 ...
- poj1664 dp记忆化搜索
http://poj.org/problem?id=1664 Description 把M个相同的苹果放在N个相同的盘子里,同意有的盘子空着不放,问共同拥有多少种不同的分法?(用K表示)5.1.1和1 ...
- 状压DP+记忆化搜索 UVA 1252 Twenty Questions
题目传送门 /* 题意:给出一系列的01字符串,问最少要问几个问题(列)能把它们区分出来 状态DP+记忆化搜索:dp[s1][s2]表示问题集合为s1.答案对错集合为s2时,还要问几次才能区分出来 若 ...
- ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2017)- K. Poor Ramzi -dp+记忆化搜索
ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2017)- K. ...
- POJ 1088 DP=记忆化搜索
话说DP=记忆化搜索这句话真不是虚的. 面对这道题目,题意很简单,但是DP的时候,方向分为四个,这个时候用递推就好难写了,你很难得到当前状态的前一个真实状态,这个时候记忆化搜索就派上用场啦! 通过对四 ...
- zoj 3644(dp + 记忆化搜索)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4834 思路:dp[i][j]表示当前节点在i,分数为j的路径条数,从 ...
- loj 1044(dp+记忆化搜索)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26764 思路:dp[pos]表示0-pos这段字符串最少分割的回文 ...
随机推荐
- 【高可用HA】Apache (1) —— Mac下安装Apache Httpd到自定义路径(非/etc/apache2)
Mac下安装Apache Httpd httpd版本: httpd-2.4.17 参考来源: Tomcat Clustering - A Step By Step Guide Apache HTTP ...
- Apache CXF实现Web Service(3)——Tomcat容器和不借助Spring的普通Servlet实现JAX-RS(RESTful) web service
起步 参照这一系列的另外一篇文章: Apache CXF实现Web Service(2)——不借助重量级Web容器和Spring实现一个纯的JAX-RS(RESTful) web service 首先 ...
- Tomcat server分端口部署web项目
<?xml version='1.0' encoding='utf-8'?> <Server port="8006" shutdown="SHUTDOW ...
- photoshop基础
在Photoshop中,对图像的某个部分进行色彩调整,就必须有一个指定的过程.这个指定的过程称为选取.选取后形成选区. 现在先明确两个概念: 选区是封闭的区域,可以是任何形状,但一定是封闭的.不存在开 ...
- vi编辑器的常见使用技巧
光标移动 在普通模式下, 1.按 h 向左移动光标 按 h + 数字n 可以向右移动 n个字符 比如 h + 5 就是向左移动5个字符 2.按j向下移动光标 3.按k向上移动光标 4.按 l 向 ...
- KMP高质量代码实现详解
KMP算法 对于KMP算法我分为两个部分说明,第一部分是算法部分,介绍KMP算法的算法思想:第二部分是实现部分,介绍一种厉害的实现代码以及代码注释.当然了由于本文主要介绍怎么实现故而先分析实现,对KM ...
- POJ 3678
Katu Puzzle Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7391 Accepted: 2717 Descr ...
- C#实现文件增量备份
最近将客户的一个ASP网站部署到了公司的机房云服务器上,该ASP网站的文件总容量已有将近4GB. 虽然现在硬盘容量很大,但每天一次完整备份的话,那占用的硬盘空间会急剧上升,考虑一个更优的备份方案就是每 ...
- 14个Xcode中常用的快捷键操作
在Xcode 6中有许多快捷键的设定可以使得你的编程工作更为高效,对于在代码文件中快速导航.定位Bug以及新增应用特性都是极有效的. 当然,你戳进这篇文章的目的也在于想要快速的对代码文件进行操作,或者 ...
- java开发--反射技术
学习目标: 1.什么是反射:即反射的定义, 2.反射有什么作用,能解决什么问题, 3.反射的知识点是什么, 4.反射的利弊 5.反射的例子 1.什么是反射:反射的定义: a) 能够分析类能力的程序被称 ...