第九周总结

作者分享了从初次接触动态规划(DP)题目,特别是背包问题时的困惑,到通过不断实践和使用Excel辅助理解,逐渐掌握DP技巧的过程。文章强调了Excel在解决DP问题中的便利性,以及对于代码优化的理解,指出状态转移方程是问题的核心。随着经验的积累,作者现在能更自信地解决背包问题,并感受到算法学习对编程能力的提升。
摘要由CSDN通过智能技术生成

这周做背包问题,做了很多dp题,再做背包问题的时候发现这个好简单,现在想想一开始做dp题时的心理反应,真的发生了极大的变化。一开始接触dp题,连思路都没有,于是就在csdn中搜题然后看题解,有时有题解也看不懂代码,这时就一步一步的运行代码(在草稿纸上把每个循环的结果写出来),跟随着代码的运行理解代码所代表的意思。在草稿纸上写多重循环这简直就是太麻烦的事情了,有时后面的数还需要前面的数代入,这时就要在草稿纸上找这个数。后来发现了Excel的好处,表格已经弄好,你只需要填数值就可以了,这大大降低了找数字的时间,并且这样显得简单明了,非常易懂。从此做dp题就非常喜欢Excel,尤其是目前的背包问题,一开始就疑惑为什么放入这个物品后,背包总体积没有减去这个物品的体积,在这样的情况下代码反而是正确的。带着这样的疑惑,我用Excel跑了一遍代码,接下来就是连声惊叹,这优化的太厉害了,小于这个物品的体积,根本就装不下物品,所以不用计算,直接循环条件大于等于第i个物品的体积就可以,这样省去了很多次无用的循环。二重循环体积是递减的,这样不破坏前面的小数据,而后面的大数据还能修改。至于为什么背包总体积没有减去这个物品的体积,是因为体积是在dp【xxx】xx中减去的,每次循环都会更新dp【v】的值,而这个值又与上一次循环的dp有关,而前面dp已经是最大值了,dp【v】顺其自然也就是最大值了。这个状态转移方程真的是凝缩的精华,整道题的灵魂所在。
因为做题的积累吧,现在做背包题感觉状态转移方程可以轻易写出,一些根据背包问题改编的题,完全就是向背包上靠,仿佛背包问题的代码就是模板,遇见新的问题想一下这个模板,新的题也就能解出来了。
现在做题,自信心慢慢回升,做题成功后的喜悦感直接上头,以前是看题解·做题,做题成功的喜悦感比较小,可能觉得不是单靠自己做的,反而喜悦感没有那么强。学习到现在,觉得学习算法真的提高了编程能力,认识到了很多目前没有学到的东西,离开了学习c++的舒适区,增加了做题的数量,虽然学习算法占据了课余时间,但是提升了能力,这也是值得的。与其浪费时间放纵自己,不如多些时间提升自己!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值