[蓝桥杯2018初赛]测试次数
发布日期:2021-05-15 07:31:20 浏览次数:12 分类:精选文章

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

听说了讲解后,我立即动手编写代码。做为一个刚接触动态规划的小白,看到那些dp表填充代码时,心里直打鼓,良好的习惯一定要养成。

为观察规律,我首先让这个二维数组a初始化为某种初始状态。在这个例子中,选择将a[1][i]初始化为i,以便后续处理需要从第一个子矩阵开始。该部分的循环对所有j<=3(这里j代表子矩阵的数量)和i<=n(n设定为1000)的情况都进行了初始化。

接着,我深入研究问题的关键部分。这部分主要是对每个子矩阵(这里设定为i>1的情况)进行处理。在这个子矩阵中,除了初始化外,还需要进一步优化每个a[i][j]。具体做法是鼓励从k=2的循环条数开始,通过动态规划的思想,从较小的子矩阵中寻找答案。每一步的计算都以取最小值的方式进行决策,同时结合前一子矩阵的结果,最终得出最优解。

完成所有计算后,程序输出了最终结果,即a[3][1000]。这个结果是我们问题中最关心的点,经过上述所有步骤,最终得到了最优解。

整个过程让我对动态规划的思想有了更深入的理解。尤其是观察到这一动态规划的状态转移表,每个状态都需要基于之前的状态来计算,这种编程思维方法让人既能解决问题,又能培养良好的编程习惯。

对这段代码的阅读让我意识到,编程不仅是掌握知识,更是要有耐心去观察和思考。对于我们这些刚接触动态规划的小白来说,多做练习、多观察能力才是关键。这次经历也让我更加明白,良好的编程习惯和系统化的知识积累是写出高质量代码的基础。

上一篇:[蓝桥杯2018初赛]全球变暖
下一篇:关于广度优先搜索bfs

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月30日 14时50分44秒