算法第3章作业

1、对动态规划的理解

     动态规划即是用一个表来记录所有已解决的子问题的答案,不管该子问题以后是否被用到,只要被计算过,就可将其结果填入表中。且动态规划算法适用于解最优化问题。通常可按以下4个步骤设计:

  (1)找出最优解的性质,并刻画其结构特征

  (2)递归地定义最优值

  (3)以自底向上的方式计算出最优值

  (4)根据计算最优值时得到的信息,构造最优解

 

 2、分别列出编程题1、2的递归方程

编程题1:

长江游艇俱乐部在长江上设置了n个游艇出租站1,2,…,n。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i到游艇出租站j之间的租金为r(i,j),1<=i<j<=n。试设计一个算法,计算出从游艇出租站1 到游艇出租站n所需的最少租金。

输入格式:

第1 行中有1 个正整数n(n<=200),表示有n个游艇出租站。接下来的第1到第n-1 行,第i行表示第i站到第i+1站,第i+2站, ... , 第n站的租金。

输出格式:

输出从游艇出租站1 到游艇出租站n所需的最少租金。

代码如下:

 #include<iostream>
using namespace std;


int main()
{
    int num,i,j;
    int a[100],count[100]; 
    cin>> num;
    for(int i=0;i<num;i++)
        count[i] = 1;
    for(int i=0;i<num;i++)
        cin>>a[i];
for(j=0;j<num;j++)
    {    
        int k=j+1;
        for(int i=j;i<num-1;)
        {    if(a[i]<a[k])
            {    
                count[j]++;
                i=k;
                k++;
            }
            else
            {
                k++;
            }
        }
    }
    int max = count[0];
    for(int i=1;i<num;i++)
        if(max<count[i])
            max = count[i];
    cout<<max<<endl;
    return 0;
}

 

编程题2:

长江游艇俱乐部在长江上设置了n个游艇出租站1,2,…,n。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i到游艇出租站j之间的租金为r(i,j),1<=i<j<=n。试设计一个算法,计算出从游艇出租站1 到游艇出租站n所需的最少租金。

 输入格式:

第1 行中有1 个正整数n(n<=200),表示有n个游艇出租站。接下来的第1到第n-1 行,第i行表示第i站到第i+1站,第i+2站, ... , 第n站的租金。

 输出格式:

输出从游艇出租站1 到游艇出租站n所需的最少租金。

代码如下:

#include <iostream>
using namespace std;
int main()
{
    int n,i,j,k,p;
    int a[100][100];
    cin>>n;
    for(i=1;i<=n;i++)
    {
        a[i][i]=0;
    }
    for(i=1;i<=n;i++)
    {
        for(j=i+1;j<=n;j++)
        {
            cin>>a[i][j];
        }
    }
    for(i=2;i<=n;i++)
    {
        for(j=i+1;j<=n;j++)
        {
            k=j-i;
            for(p=k;p<j;p++)
            {
                if(a[k][j]>a[k][p]+a[p][j])
                a[k][j]=a[k][p]+a[p][j];
            }
        }
    }
    cout<<a[1][n]<<endl;
    return 0;
}

 

3、结对编程情况

结对编程在上机的时候实践比较多,动态规划这部分虽然有点难,但是很实用,希望自己跟同伴都能继续认真学习,努力进步。

 

posted @ 2018-11-09 10:49  YILINNN  阅读(2597)  评论(0编辑  收藏  举报