一、对动态规划算法的理解:
将待解问题分解成若干个有关联的子问题,先求解出最小的子问题,在求解出临近的规模比它大的问题,直至到待解问题。该算法可以保存已解决的子问题的答案,在需要时再找出已解决的子问题的答案,避免大量重复计算,减少时间复杂度。我认为运用这个算法的关键点在于找出找出问题的递归过程并列出递归方程。
二 、编程题递归方程
7.1
for(i=2;i<=n;i++) { max=0; for(j=1;j<=i-1;j++) { if(m[j]>max&&num[i]>num[j]) { max=m[j]; m[i]=max+1; } } }
7.2
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; } } }
三 、结对编程情况
下次一定约个时间,和晓冰好好讨论算法!