第四章作业
1.对贪心算法的理解:
贪心算法概念:做出目前看来最好的选择,不是先考虑整体最优而是局部最优,通过一步步选择再达到整体最优。
贪心算法的基本要素:a.贪心选择性质(问题的整体最优解可以通过一系列局部最优解来达到)b.最优子结构性质(问题最优解包括其子问题的最优解)。
2.汽车加油问题的贪心选择性质:
代码如下,m<=n时m=m+a[i],可知只要汽车的油还够支持它行驶到下一站,汽车就继续行驶,直至不够油到下一站,汽车就在此站加油。
int n,k,a[N]; cin>>n>>k; for(int i=0;i<=k;i++) { cin>>a[i]; } int i=0,b=0; int m=a[0]; while(i<=k) { if(m>n) { cout<<"No Solution!"<<endl; b=-1; break; } else { if(i==k) break; i=i+1; m=m+a[i]; if(m>n) { b=b+1; m=a[i]; } } }
3.学习问题及结对情况:
学习问题:能够理解这个算法的意思,但有时候做题思路有点混乱,步骤不清晰容易出错,导致做完一道题要挺久。
结对情况:这章的思想比较容易理解,可以自己做出,交流不多。