HDU 2859 Phalanx(二维DP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2859

题目大意:对称矩阵是这样的矩阵,它由“左下到右”线对称。 相应位置的元素应该相同。 例如,这里是3 * 3对称矩阵:

     cbx
     cpb
     zcc

给出任意的n*n的矩阵找出里面最大的对称的子矩阵,输出大小。

解题思路:有这样一个规律,对于每个字符看该列以上和该行右侧的字符匹配量,如果匹配量大于右上角记录下来的矩阵大小,就是右上角的数值+1,否则就是这个匹配量。根据这个规律,把n*n的点都遍历以便一,直推下去找出最大值就可以了。

代码:

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 const int N=1e3+5;
 6 char map[N][N];
 7 int dp[N][N];
 8 
 9 int main(){
10     int n;
11     while(scanf("%d",&n)&&n){
12         memset(dp,0,sizeof(dp));
13         for(int i=1;i<=n;i++){
14             getchar();
15             for(int j=1;j<=n;j++){
16                 scanf("%c",&map[i][j]);
17             }
18         }
19         int ans=1;
20         for(int i=1;i<=n;i++){
21             for(int j=1;j<=n;j++){
22                 if(i==1||j==n){
23                     dp[i][j]=1;
24                     continue;
25                 }
26                 int t1=i,t2=j,cnt=0;
27                 while(t1>=1&&t2<=n&&map[t1][j]==map[i][t2]){
28                     t1--;
29                     t2++;
30                     cnt++;
31                 }
32                 if(cnt>=dp[i-1][j+1]+1)
33                     dp[i][j]=dp[i-1][j+1]+1;
34                 else
35                     dp[i][j]=cnt;    
36                 ans=max(ans,dp[i][j]);
37             }
38         }
39         printf("%d\n",ans);
40     }
41 }

 

转载于:https://www.cnblogs.com/fu3638/p/7506187.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467675.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux io内存存在的意义~

今天是母亲节&#xff0c;首先祝各位读者的母亲节日快乐&#xff0c;祝你们的母亲年轻健康。母亲节是一个亘古的话题&#xff0c;我本来想写个文章&#xff0c;但是想起来这周就一个周末&#xff0c;要花点时间陪下家人&#xff0c;昨天我们老大开会&#xff0c;特别说了&#…

imx6 配置串口波特率_RS232串口多机通信

一、基本原理1、主从多机通信拓扑图2、主从多机通信的具体过程 1)使所有的从机的SM2位置1&#xff0c;以便接收主机发来的地址&#xff1b;2)主机发出一帧地址信息&#xff0c;其中包括8位需要与之通信的从机地址&#xff0c;第9位为1&#xff1b;3)所有从机接收到地址帧后&…

android设置访问internet权限

如果在app中访问网络&#xff0c;提示internet permission denied&#xff0c;即是没有设置访问网络的权限 在AndroidManifest.xml文件中添加如下一行即可 <uses-permission android:name"android.permission.INTERNET" />转载于:https://www.cnblogs.com/Awan…

一个故事讲完CPU的工作原理

上二年级的小明正坐在教室里。现在是数学课&#xff0c;下午第一节&#xff0c;窗外的蝉鸣、缓缓旋转的吊扇让同学们昏昏欲睡。此时&#xff0c;刘老师在黑板上写下一个问题&#xff1a;6324 244675 &#xff1f;小明抬头看了一眼&#xff0c;觉得这两个数字挺眼熟。他昨天翘…

axure弹窗关闭_干货来袭,Axure插入图标的几种办法

前言在日常绘制原型的时候&#xff0c;经常会需要插入相应的图标&#xff08;icon&#xff09;到Axure中&#xff0c;但是看似好像很简单的事情也给蛮多小伙伴造成了困扰。现在很多开发团队都会用一些比较常见的前端框架来搭建后台管理系统&#xff0c;例如常见的Element-UI&am…

用指针实现高低位倒序,疯了吧

昨晚在微信群看到一个读者发的面试题目&#xff0c;从网上截图出来的&#xff0c;我百思不得其解&#xff0c;题目如图。幸好&#xff0c;我学过栈栈&#xff0c;C语言实现然后我写了个小程序第一个方法比较笨&#xff0c;当我写完自己的代码后&#xff0c;看到有同学发了自己的…

部署nexus服务

一、安装和启动 官网下载nexus-2.12安装包&#xff0c;地址&#xff1a;https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.12.0-01-bundle.tar.gz 此版本需要预先安装jdk1.7 解压后&#xff0c;用命令【./bin/nexus start】来启动 nexus有如下一些控制命令&…

天然气表怎么看多少方_上海考大学难度怎么样?看2019上海高考“成绩分布表”和“本科分数线”就知道了!...

参加高考的同学和家长们注意了~上海市教育考试院近日发布本市普通高等学校秋季招生本科各批次录取控制分数线和成绩分布表。艺术类、体育类本科文化控制分数线也同步公布。&#xff08;鲁申君注&#xff1a;上海2019年高考本科总分660&#xff0c;专科总分450&#xff0c;不分文…

关于Linux内核代码不使用typedef的讨论?

C语言关键字 -&#xff08;typedef关键字&#xff09;typedef有点像火隐忍者里面的万花筒写轮眼&#xff0c;用起来非常炫酷有型&#xff0c;使你的代码更加简短&#xff0c;让你穿上你亲妈都认不出你的马甲…比如这样一段代码typedef struct point{int x, y;} Points;Points f…

基于深度学习模型的花卉图像分类代码_华为不止有鸿蒙!教你快速入门华为免编程深度学习神器ModelArts...

引言&#xff1a;本文介绍利用华为ModelArts进行深度学习的图像分类任务&#xff0c;不用一行代码。今年8月9日&#xff0c;在华为史上规模最大的开发者大会上&#xff0c;华为正式发布全球首个基于微内核的全场景分布式OS——鸿蒙操作系统(HarmonyOS)。但你知道吗&#xff1f;…

洛谷P3405 [USACO16DEC]Cities and States省市

P3405 [USACO16DEC]Cities and States省市 题目描述 To keep his cows intellectually stimulated, Farmer John has placed a large map of the USA on the wall of his barn. Since the cows spend many hours in the barn staring at this map, they start to notice severa…

天线的原理

关注、星标公众号&#xff0c;不错过精彩内容来源&#xff1a;中兴文档小时候家里的收音机、电视机&#xff0c;都带着可以灵活转动拉伸的杆子&#xff0c;大家一定对这个可以转来转去的杆子记忆犹新&#xff0c;或许也好奇的发现这个杆子的长度与方向和收音机、电视的接收效果…

2d 蓝图_“蓝图”卷积--对深度可分离卷积的再思考

论文&#xff1a;Rethinking Depthwise Separable Convolutions: How Intra-Kernel Correlations Lead to Improved MobileNetshttps://arxiv.org/pdf/2003.13549.pdf​arxiv.org代码地址&#xff1a;zeiss-microscopy/BSConv​github.com一、背景一些轻量级的网络&#xff0c;…

Node.js 得到当前目录下文件修改文件名

博客园第一篇,平时都用 .net ,现在 node.js 比较火&#xff0c;就用它做一些小工具&#xff0c;比较方便 Node.js 得到当前目录下文件修改文件名,把 .txt 修改为.md var fs require(fs); var fileDirectory __dirname if (fs.existsSync(fileDirectory)) {fs.readdir(fileDir…

原来你也在写公众号

现在凌晨1点&#xff0c;我睡不着&#xff0c;因为今天打球了&#xff0c;每次打球回来我总是睡得很奇怪&#xff0c;奇怪有时候打球回来一躺下就睡着了&#xff0c;有时候打球回来就会习惯性失眠。脑海里总是浮现各种打球的进球动作&#xff0c;然后各种幻想&#xff0c;再加上…

中的数组怎么转成结构体_PLC知识,什么是数组和结构体?

今天给大家介绍一下什么是数组&#xff0c;什么是结构体&#xff0c;关于数组我们会介绍数组的定义、它的使用方法&#xff0c;关于结构体我们会介绍结构体的使用、怎么去建立一个结构体等知识&#xff0c;之前也是有部分学员有问过这些问题的&#xff0c;那么都一块儿给大家讲…

MMU那些事儿

最近在重新看这部分知识点&#xff0c;内存管理和进程调度应该是Linux下最核心的两个东西&#xff0c;不管你做得多牛逼了&#xff0c;这两点拿出来讨论&#xff0c;总是会让人眼前一亮&#xff0c;或者是可以讨论很久很久&#xff0c;这篇文章&#xff0c;读完后可能也可以让大…

51Nod 1530 稳定方块

瓦西亚和皮台亚摆放了m个方块。方块被编号为0到m-1(每个号码出现恰好一次)。现在建立一个座标系OX表示地面&#xff0c;OY的方向是竖直向上的。每一方块的左下角有一个座标而且是整点座标。 摆放好的方块一定要是稳定的。稳定的含意是每一个不在地面上的方块在他的下面至少有一…

C语言、嵌入式中几个非常实用的宏技巧

宏打印函数 在我们的嵌入式开发中&#xff0c;使用printf打印一些信息是一种常用的调试手段。但是&#xff0c;在打印的信息量比较多的时候&#xff0c;就比较难知道哪些信息在哪个函数里进行打印。特别是对于异常情况的打印&#xff0c;我们需要快速定位到异常情况的位置。这时…

canvas 多次画图效果_canvas练习之终极的奔跑小人

这次做一个终极的练习&#xff0c;先看一下最后的效果。一个不停奔跑的小人&#xff0c;点击鼠标后会让他跑到目的地&#xff0c;并且呈现不同的角度。下面来看一下如何一步步来实现它的。准备网上下载了一张图片&#xff0c;其中包含了小人面向不同角度奔跑的各个分解动作。新…