这两周主要以动态规划的习题和一些模拟题为主。对于动态规划来说,动态规划比贪心难理解挺多的。贪心是局部最优反应整体最优,而动态规划是局部阶段最优反应整体最优。这个动态规划到现在还没有听的很懂,他的原理感觉也不是很难理解,但是在做题中的时候感觉想不太过来,比如说贪心的话你只要找到思路你就可以从头就能够想到结尾。但是我做动态规划,即使找到正确的阶段,还有不同的状态,我也很难从头想到尾。
动态规划主要的解题思路思路
首先就是划分阶段,这个阶段相对来说比较好找,当然也有想起来比较麻烦的。比如说DP的第H题:求毛毛虫到达P点的方案数,这个题刚开始我想了好多种阶段,最后才找到要以第i分钟到达第j点来划分阶段。再就是根据划分的阶段来寻找方程式,其实说起动态规划来说,感觉和高中书里的数学归纳法类似,而根据归纳来找出方程式来。这一步通常是最难的,这一步来说通常要考虑这一个状态和前一个状态之间存在的关系来列出这一个方程。比如说:dp中的A牛的弹跳力,dp[i]表示前i个数的最大值(当然这个题需要定义两个dp数组,一个是前奇数个,一个是前偶数个),再来和i-1个比较大小,根据递推最终得到答案。其实在定义完方程式的时候我们还需要注意需要找出初始值,这一步也是关键有的时候就是因为你的初始值没有找对而AC不了。
其实dp我还有很多的问题,这方面的题还是比较难懂的还有就是这方面的题我做的还是不是很多并没有掌握很多的规律。所以这方面的题搞透路还是蛮长的。
再就是这几天的训练赛,对于这个天的训练赛来说我们只能做的出那种没有任何算法的简单题。这几次训练出现的问题,首先就是题意,第一次训练的时候第一题我们就因为一句话翻译的失误而提交错了几次。再就是细节的疏忽或者遗漏。还有就是对算法的不精通,其实我们队伍相对于其他的队伍来说还是比较弱的,这就更需要我们马不停蹄来追赶他们了。总之,在这一个月的时间里,至少是自己比完赛之后不会感到后悔吧。
其实对于这阵的练习和好训练也罢,这些题目都需要我们自己研究,静下心来跟着代码多走一下代码的运行流程。
有看、有想、多做、多总结。
总结: 前方路漫漫,革命尝未成功。 不悔自己的选择吧!