算法第四章作业

1.对贪心算法的理解

从初始解开始出发,每次选择都是选择最佳的,从而达到整体较好的效果,大部分情况下得到的解跟最优解相近,不过在某些情况下跟最优解相差较大。

2.请说明汽车加油问题的贪心选择性质

刚开始油是满的,出发时需要比较车的剩余油量与去下一站的耗油量的大小,如果剩余量大则可以去下一站并减去耗油量,如果剩余量小则把剩余量重置为满油再进行比较。

#include <iostream>
using namespace std;

void MinPetrolStation(int *a, int n, int k) {
int temp = n;
int count = 0;
for (int i = 1; i <= k + 1; i++) {
temp -= a[i];
if (i == k + 1 && temp >= 0) {
cout << count << endl;
}
else if (temp >= 0 && temp - a[i + 1] < 0) {
count++;
temp = n;
}
}
if (temp < 0)
cout << "No Solution!" << endl;
}

int main() {
int n, k;
cin >> n >> k;
int a[1000];
for (int i = 1; i <= k + 1; i++) {
cin >> a[i];
}
MinPetrolStation(a, n, k);
system("pause");
return 0;
}

 

posted on 2019-11-25 20:21  mars0604  阅读(122)  评论(0编辑  收藏  举报