码迷,mamicode.com
首页 > 其他好文 > 详细

[hdoj]2845 Beans

时间:2015-04-26 21:05:49      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:

解题思路:一开始的思路是分单双行,每行求一个最大,单双行分别求和。对每行求最大,对每一个位置有可能空一个位置不选,有可能空两个位置不选,但不会空三个,否则一定会加上中间的值。对每一行搜索不行,线性的存储搜索不浪费么?200000的数据只能是dp了吧。后来发现每行都求最大值之后,对列也要用同样的状态转移方程求最大值。

状态转移方程:dp[j]=max(dp[j-2]+a[j],dp[j-1]);

//动态规划赋初值的时候切记不要赋错。例如这道题,dp[2]可能=dp[1];
//至于下标越界什么情况我也不造。。。为了节约时间,c与c++没有严格审查数组下标越界问题

数组下标为-1的地址对于数组来说是越界访问了,但是这个地址是有意义的

这个地址就是所申请的数组存储空间的首地址的向前偏移一个单位(也就是偏移一个当前数组类型所对应的字节数)所对应的地址。

这个地址由于没有跟着数组空间一起初始化,
所以其中的数据是不一定的,
如果是正在被系统或者其他APP使用中的地址空间,那么可以被访问,其中的数据的意义取决于被系统或者其他APP所写入的数据,但是访问后,有可能会引起系统或者其他APP异常。
如果是没有被使用的地址,那么就是一个野地址,那么其中的数据是随机的,无意义的
以上是从网上找的答案

技术分享

hdu2845

 

[hdoj]2845 Beans

标签:

原文地址:http://www.cnblogs.com/travelller/p/4458243.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!