第四章作业

1.对贪心算法的理解:

贪心算法的概念:贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。

贪心算法的基本要素:a.贪心选择性质(问题的整体最优解可以通过一系列局部最优解来达到)b.最优子结构性质(问题最优解包括其子问题的最优解)。

2.请说明汽车加油问题的贪心算法选择:

#include<iostream>

using namespace std;

/*/题目:

一辆汽车加满油后可行驶 n公里。旅途中有若干个加油站。

设计一个有效算法,指出应 在哪些加油站停靠加油,使沿途加油次数最少。
7
2 3 4 5 1 6 6

/*/

int main()

{

    int i,j,a[1005];//i代表可行使i公里

    cin >> i >> j;

    for(int t=0;t<=j;t++) //输入j+1个数

    {

        cin >> a[t];

    }

    a[j+1]=0;

    int sum =0,count=0,flag=0;

    for(int t =0; t<=j;t++)

    {

        sum=sum+a[t];//若剩余油量可以到达下一个目的地,则不加油。

        if(i-sum<=a[t+1]&&i>=a[t])//若到剩余油量不够到达下一个加油站则加油 。

        {

            sum=0;

            count++;

        }

        if(i<a[t])//若其中有一个目的地的距离超过最大行使距离,做标记。

        flag=1;

    }

    if(flag==0)

    cout << count<<endl;

    if(flag==1)

    cout <<"No Solution!"<<endl;

    return 0;

}

3.请说明在本章学习过程中遇到的问题及结对编程的情况:

结对情况:相互督促,主要会一起商量讨论结对的编程题。

posted @ 2018-12-02 19:33  jiaqiz  阅读(152)  评论(0编辑  收藏  举报