林思婷

导航

算法第四章作业

一:对贪心算法的理解

特点:

1.贪心算法的每一步都有一组选择,贪心算法总是做出在当前看来是最好的选择

2.贪心算法并不代表着整体最优,所作的选择只是某种意义的局部最优

3.贪心算法希望通过做出局部最优选择达到全局最优。但贪心算法并不能保证最终结果为最优

所需要的条件:

贪心选择性质

最优子结构性质

 

二:汽车加油问题

思想:不到迫不得已不加油(贪心选择策略

#include<iostream>
#include <stdio.h>
using namespace std;
void greedy(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<<endl;
}


int main() {
int i,n,k;
int d[1000];
cin>>n>>k;
for(i = 0;i <= k;i++)
cin>>d[i];
greedy(d,n,k);
}

3.本章学习过程中,比前两章的学习略为顺利一点,线下讨论时也没什么大问题。但在上机时,第二道题困扰了我和我队友很久,最后在大家一起思考反复验证下,最终成功!感谢队友!

 

posted on 2018-12-01 20:16  林思婷  阅读(89)  评论(0编辑  收藏  举报