博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdoj2859(矩阵DP)
阅读量:6293 次
发布时间:2019-06-22

本文共 811 字,大约阅读时间需要 2 分钟。

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

思路:

第一次碰到这种矩阵上的DP题,想了半天也没想明白。本来想用子矩阵的左上角坐标和右下角坐标当作状态,但这样内存肯定是不够的。后来网上查了就明白了。

用dp[i][j]表示以(i,j)为左下角的矩阵的维数最大值,然后在斜边上DP,建立dp[i][j]与dp[i-1][j+1]的联系。具体思路见代码,仔细想想就明白了。也学到关于矩阵的题目多考虑对角线。我在这wa了一发,原因是我将res初始化为0,而如果输入数据是n=1(即一维),结果应该是1,而我的程序结果是0,把res初始化为1就行了,以后要多注意特殊情况。

1 #include
2 using namespace std; 3 4 int n,res,dp[1005][1005]; 5 char a[1005][1005]; 6 7 int main(){ 8 while(~scanf("%d",&n),n){ 9 res=1;10 for(int i=0;i
=0&&tj
=dp[i-1][j+1]+1) dp[i][j]=dp[i-1][j+1]+1;23 else dp[i][j]=t;24 if(dp[i][j]>res) res=dp[i][j];25 }26 printf("%d\n",res);27 }28 return 0;29 }

 

转载于:https://www.cnblogs.com/FrankChen831X/p/10439709.html

你可能感兴趣的文章
PYTHON高级全栈开发工程师-老男孩教育
查看>>
人人出售56不亏:三方得利
查看>>
美柚引流宝妈女粉,淘宝客微商不用引流脚本也能日吸500+
查看>>
如何用手机维护Mysql数据库
查看>>
Office 365启用多重身份验证
查看>>
网络视频会议整体解决方案
查看>>
免费获取田志刚《新知识管理》文字和PPT下载
查看>>
Office 365发送超大附件
查看>>
OSPF的route-id选举
查看>>
IT绩效管理消除IT与业务之间的隔阂
查看>>
解决 MSChart控件 X轴坐标显示不全的问题
查看>>
在C#中选择“.NET研究”正确的集合进行编码
查看>>
再次分享一个多选文件上传方案“.NET研究”
查看>>
PySide教程:一个简单的点击“.NET研究”按钮示例
查看>>
find命令
查看>>
网络通讯程序整理(一)
查看>>
[转载]一站式WPF--Window
查看>>
poj-1159 Palindrome **
查看>>
VS2010/VS 2013 删除空行
查看>>
解决linux ssh登陆缓慢问题
查看>>