HDU 2859 Phalanx
简单二维dp。o(n^3)效率过的。不知道有没有o(n^2)的解法。
为了方便点,先左右交换一下。
dp[i][j]表示以[i,j]为左上角的最大对称矩阵长度
那么dp[i][j]=min(Max,dp[i+1][j+1])+1;
其中Max是以[i,j]为起点,i这一行和j这一列最长公共前缀的长度
#include<cstdio>
#include<cstring>
#include<cmath>
#include<stack>
#include<vector>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std; const int maxn=+;
char Map[maxn][maxn];
int dp[maxn][maxn];
int n; int main()
{
while(~scanf("%d",&n))
{
if(!n) break;
for(int i=; i<n; i++) scanf("%s",Map[i]);
for(int i=; i<n; i++)
for(int j=; j<n/; j++)
swap(Map[i][j],Map[i][n-j-]); memset(dp,,sizeof dp); int ans=;
for(int i=n-; i>=; i--)
{
for(int j=n-; j>=; j--)
{
int Max=;
for(int len=;; len++)
{
if(i+len>=n||j+len>=n||Map[i][len+j]!=Map[len+i][j])
{
Max=len;
break;
}
}
Max--;
dp[i][j]=min(Max,dp[i+][j+])+;
ans=max(ans,dp[i][j]);
}
}
printf("%d\n",ans);
}
return ;
}
HDU 2859 Phalanx的更多相关文章
- HDU 2859 Phalanx(对称矩阵 经典dp样例)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2859 Phalanx Time Limit: 10000/5000 MS (Java/Others) ...
- HDU 2859 Phalanx (dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2859 给你一个n*n的矩阵,问你最大的对称度是多少(左下右上为对称线) dp[i][j]表示i行j列元 ...
- HDU 2859 Phalanx(二维DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2859 题目大意:对称矩阵是这样的矩阵,它由“左下到右”线对称. 相应位置的元素应该相同. 例如,这里是 ...
- hdu 2859 Phalanx (最大对称子矩阵)
Problem Description Today is army day, but the servicemen are busy with the phalanx for the celebrat ...
- HDU 2859 Phalanx (DP)
Phalanx Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- HDU 2859—Phalanx(DP)
Time Limit:5000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description Today i ...
- hdu(2859)——Phalanx(dp)
题意: 如今有一个n*n的矩阵,然后每一个格子中都有一个字母(大写或小写组成).然后询问你如今最大的对称子矩阵的边长是多少.注意这里的对角线是从左下角到右上角上去的. 思路: 这道题我自己写出了dp的 ...
- HDU 2859 Phalanx ——(DP)
感觉是个n^3的dp,只是可能上界比较松吧..转移见代码.值得注意的一个地方是如果n是1,那么在for里面是不会更新答案的,因此ans要初始化为1. 代码如下: #include <stdio. ...
- Phalanx (hdu 2859)
http://acm.hdu.edu.cn/showproblem.php?pid=2859 Time Limit: 10000/5000 MS (Java/Others) Memory ...
随机推荐
- h3c dhcp snooping
1. 组网需求Switch B通过以太网端口Ethernet1/1连接到DHCP服务器,通过以太网端口Ethernet1/2.Ethernet1/3连接到DHCP客户端.要求:l与DHCP服务器相连的 ...
- CSS box-flex属性
http://www.zhangxinxu.com/wordpress/2010/12/css-box-flex属性,然后弹性盒子模型简介/ http://www.zhangxinxu.com/wor ...
- DataGridView直接导出EXCEL
1public void DataToExcel(DataGridView m_DataView) { SaveFileDialog kk = new SaveFileDialog(); kk.Tit ...
- on使用详解
on()是bind(),live(),delegate()的替代品,1.7及1.7以后使用on() bind() 绑定元素 live() 为元素附加事件,匹配选择器的当前及未来的元素(比如由脚本创建的 ...
- windows ORA-12560: TNS: 协议适配器错误
1.first it report ORA-12560: TNS: 协议适配器错误 手工设定环境变量如下: set ORACLE_HOME=d:\app\OAadmin\product\11.2.0\ ...
- Opencv基础知识-----视频的读取和操作
Opencv读取视频代码 #include "stdafx.h" #include"highgui.h" int main(int argc,char* a ...
- UVA - 10635 最长公共子序列
input n,p,q 2<=n<=250 1<=p,q<=n*n 1 a1 a2 a3 ... ap 1<ai<n*n,ai!=aj 1 b1 b2 b3 ... ...
- Ubuntu不可以ping百度,但是可以ping通其ip
原来也安装过几个ubuntu系统,但是今天遇到一个很奇怪的情况,明明ifconfig显示已经获取了网络上的ip,但是浏览器就是打不开网页,百思不得其解.因为这几天用ping用多了,所以进行了以下尝试: ...
- UVALive - 4026 Difficult Melody(暴力)
我这个英语学渣又把题给翻译错了……(话说,六级差十分没有过,好心疼T T),题目中说的P和Q都是计算game的个数,我以为是出现的次数,各种wa..后来调整了以后又是各种wa,原来是double型的数 ...
- js date相关学习!
var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-???? ...