算法第三章总结
Posted xiaoming4228
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法第三章总结相关的知识,希望对你有一定的参考价值。
一、你对动态规划算法的理解:
1、动态规划算法比较难,不过只要多点找题目练习,理解每个题目的基本思想,这类题目还是很容易突破的;
2、可以先找到题目中变量的对应关系,并列出递归方程,思考临界值的问题,并用草稿纸自己走一遍程序,发现递归算法的漏洞,也可以用循环方程解决;
3、除了运用草稿纸,也可以总结自己思考的过程,并将这种思考方式进一步提升,解决动态规划问题会快一点。
二、分别列出编程题1、2的递归方程:
1、单调递增最长子序列:
for (int i = 0; i < n; ++i)
{
dis[i] = 1;
for (int j = 0; j < i; ++j)
{
if (a[i] >= a[j] && dis[i] < dis[j] + 1)
{
dis[i] = dis[j] + 1;
}
}
if (dis[i] > max_len)
{
max_len = dis[i];
}
}
2、租用游艇问题:
for(int i=1;i<n;i++)
{
for(int j=i+1;j<=n;j++)
{
scanf("%d",&dp[i][j]);
}
}
for(int k=2;k<n;k++)
{
for(int i=1;i<=n-k;i++)
{
int j=i+k;
for(int z=i+1;z<=j;z++)
{
int temp=dp[i][z]+dp[z][j];
if(dp[i][j]>temp)
dp[i][j]=temp;
}
}
}
三、说明结对编程情况:
我和甘淳同学相处还比较好,上机实践时会一起讨论问题,我们两个也有不同的想法并一起讨论,线下讨论问题也比较积极,有时候有不懂的我们会互相向对方提出,并加以改进,解决算法的难点,希望我们能好好合作,共同完成算法的学习。
以上是关于算法第三章总结的主要内容,如果未能解决你的问题,请参考以下文章