算法第四章作业
一:對貪心算法的理解
特點:
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.本章學習過程中,比前兩章的學習略為順利一點,線下討論時也沒什么大問題。但在上機時,第二道題困擾了我和我隊友很久,最后在大家一起思考反復驗證下,最終成功!感謝隊友!
?
轉載于:https://www.cnblogs.com/sisilovestudy/p/10050849.html
總結
- 上一篇: freeze
- 下一篇: JSON,数组根据字段分组