算法第四章作业

一 . 对贪心算法的理解

贪心算法的基本要素是:贪心选择性质和最优子结构性质

贪心选择每次选取当前最优解,可以依赖以往的选择,但绝不依赖于将来所做的选择,也不依赖于子问题的解。

贪心算法通常以自顶向下的方式进行。

二 . 汽车加油问题的贪心选择性质

汽车应选择在能到达的前提下离自己最远的加油站进行加油

代码:

#include <iostream>
using namespace std;
void car(int d[], int n, int k) {
    int num = 0;
    for(int i = 0;i <= k;i++) {
        if(d[i] > n) {
            cout << "No Solution!";
            return;
        }
    }
    for(int i = 0,s = 0;i <= k;i++) {
        s += d[i];
        if(s > n) {
            num++;
            s = d[i];
        }
    }
    cout << num;
}
int main() {
    int i,n,k;
    int d[1000];
    cin >> n >> k;
    for(i = 0;i <= k;i++)
        cin >> d[i];
    car(d,n,k);
}

三 . 遇到的问题以及结对编程情况

这道题相对容易,需要注意一些小的细节问题,比如无法到达目的地,则输出“No Solution!”。

结对编程和同伴的配合相比之前进步很多。

posted @ 2018-11-29 16:23  Ygrittee  阅读(160)  评论(0编辑  收藏  举报