题意:

如今有一个n*n的矩阵,然后每一个格子中都有一个字母(大写或小写组成)。然后询问你如今最大的对称子矩阵的边长是多少。注意这里的对角线是从左下角到右上角上去的。

思路:

这道题我自己写出了dp的定义式,可是要怎么转移方程并没有推出来。

我看了好久的题解才明确的,果然还是太弱。。。

首先我们定义:dp[i][j]为第i行第j列所可以组成的最大对称子矩阵的长度。

关于对角线全然对称的矩阵!

转移方程为:dp[i][j]=dp[i-1][j+1]+1 ; 注意这里是由点(i-1,j+1)推过来的。由于我们在这里矩阵的对角线是由左下角推到右上角去的。

首先我们要进行初始化,第0行的它们所能组成的dp[0][i]=1,最大仅仅能组成1个。

然后我们对每一个点进行推断(i,j),当然它是从(i-1,j+1)推过来的。可是对于每一个字符看该列以上和该行右側的字符匹配量,假设该匹配量大于右上角记录下来的矩阵大小。那么就是右上角的数值加1。否则就是这个匹配量(由于我们我们每次都要满足全部的。所以要尽可能的取小的)

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
#define maxn 1111
int dp[maxn][maxn];
char a[maxn][maxn];
int main(){
int n;
while(~scanf("%d",&n)){
if(n==0) break;
int ans=1;
for(int i=0;i<n;i++) scanf("%s",a[i]);
for(int i=0;i<n;i++) dp[0][i]=1;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(i==0) continue;
int tx=i,ty=j;
while(tx>=0&&ty<n&&a[tx][j]==a[i][ty]){
tx--; ty++;
}
int cur=i-tx;
if(cur>=dp[i-1][j+1]+1) dp[i][j]=dp[i-1][j+1]+1;
else dp[i][j]=cur;
ans=max(ans,dp[i][j]);
}
}
printf("%d\n",ans);
}
}

*(这道题真心卡了不少时间。希望可以好好思考,举一反三啊!)

hdu(2859)——Phalanx(dp)的更多相关文章

  1. HDU 2859 Phalanx (DP)

    Phalanx Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  2. HDU 2859—Phalanx(DP)

    Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description Today i ...

  3. HDU 2859 Phalanx ——(DP)

    感觉是个n^3的dp,只是可能上界比较松吧..转移见代码.值得注意的一个地方是如果n是1,那么在for里面是不会更新答案的,因此ans要初始化为1. 代码如下: #include <stdio. ...

  4. HDU 2859 Phalanx(对称矩阵 经典dp样例)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2859 Phalanx Time Limit: 10000/5000 MS (Java/Others)  ...

  5. HDU 4433 locker(DP)(2012 Asia Tianjin Regional Contest)

    Problem Description A password locker with N digits, each digit can be rotated to 0-9 circularly.You ...

  6. HDU 3008 Warcraft(DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3008 题目大意:人有100血和100魔法,每秒增加 t 魔法(不能超过100).n个技能,每个技能消耗 ...

  7. hdu 2059 龟兔赛跑(dp)

    龟兔赛跑 Problem Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于练成 ...

  8. HDU 4832 Chess (DP)

    Chess Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  9. HDU 4945 2048(dp)

    题意:给n(n<=100,000)个数,0<=a[i]<=2048 .一个好的集合要满足,集合内的数可以根据2048的合并规则合并成2048 .输出好的集合的个数%998244353 ...

随机推荐

  1. legend---八、php对象如何转换成js对象

    legend---八.php对象如何转换成js对象 一.总结 一句话总结:a.直接转换:b.通过json对象做中间桥梁 1.为什么传递给父亲构造函数的参数不能写默认值? 这里的第三行的比如$type不 ...

  2. zzulioj--1817--match number(水题)

    1817: match number Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 98  Solved: 45 SubmitStatusWeb Bo ...

  3. [转]A reference to a higher version or incompatible assembly cannot be added to the project

    If you face this error message while adding a reference to your project in Visual Studio try the fol ...

  4. Saying Good-bye to Cambridge Again

    Saying Good-bye to Cambridge Again Very quietly I take my leave,      As quietly as I came here;     ...

  5. Vue.js小demo

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. yii2.0中使用jquery

    我们都知道 yii 框架是组件式开发的,使用 jquery 也是非常简单的.只需要注册一下就可以使用非常简单的 jquery 代码了! <?php $this->beginBlock('s ...

  7. 学习参考《Python基础教程(第3版)》中文PDF+英文PDF+源代码

    python基础教程ed3: 基础知识 列表和元组 字符串 字典 流程控制 抽象(参数 作用域 递归) 异常 魔术方法/特性/迭代器 模块/标准库 文件 GUI DB 网络编程 测试 扩展python ...

  8. WebService通讯技术的CXF框架问题

    WebService通讯技术的CXF框架问题 严重: Servlet /cxf_rs_spring threw load() exception java.lang.ClassCastExceptio ...

  9. ubuntu 安装Gremlin 的图形化环境

    参考文档:https://www.jianshu.com/p/618cf6667381 部署HugeGraphServer # 直接下载release包 网址:https://github.com/h ...

  10. 【转】C# HttpWebRequest提交数据方式

    [转]C# HttpWebRequest提交数据方式 HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数据的最好选择.它们支持一系列有用的属性.这两个类位 于Sy ...