一、对动态规划算法的理解
即是把一个问题分解为若干个子问题,子问题和原问题很相像,但规模较小了。在解决一个一个子问题后就可以解决原问题。
二、编程题二的方程
1、7-1 单调递增最长子序列 (20 分)
1 int m = 1; 2 void getans(int a[], int res[],int n){ 3 for(int i = 0; i < n; i++){ 4 for(int j = 0; j < i; j++){ 5 if(a[j] < a[i]&&res[i] < res[j] + 1){ 6 res[i] = res[j] + 1; 7 if(res[i] > m) 8 m = res[i]; 9 } 10 } 11 } 12 }其中res[i]序列中,以下表为i的元素为单调递增子序列最后一个元素的序列长度 m用来表示res[i]中最大的元素,即单调递增子序列。
2、7-2 租用游艇问题 (17 分)
void money(int a[][201],int n){ for(int i = 2; i <= n-1; i++){ for(int j = i+1; j <= n; j++){ if(a[1][j] > a[1][i] + a[i][j]) a[1][j] = a[1][i] + a[i][j]; } } }从上到下不断更新从出租站1到其他出租站的最小花费,到最后,记录下从出租站1到所有其他出租站的最小花费。
三、结对编程汇报
由于这次时间不统一,所以没有与伙伴有更好的交流,基本都是各自完成作业,下次会交流一下的。
转载于:https://www.cnblogs.com/lussww/p/9905400.html
相关资源:编译原理(龙书)第二三四章习题解答