算法第四章作业

1.对贪心算法的理解

 

贪心算法是指在对问题求解时,总是做出当前看来是最好的选择,不从整体最优上加以考虑,而是做出某种意义上的局部最优解。动态规划中依赖于子问题的解,贪心策略无后效性,某个状态以前的过程不会影响以后的状态。

 

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

不断往前行驶直到汽车的油的可前行距离无法前进到下一个加油站时选择在当前加油站加油,cnt+=1

写代码的时候为了特判全程无需加油的情况是记录前进距离需要的耗油量tmp 当tmp>=n的时候进行一次加油

 

n,k=input().split()

n,k=int(n),int(k)

dis=[int(di) for di in input().split()]

tmp,cnt=0,0

for di in dis:

    tmp+=di

    if tmp>=n:

        tmp-=n

        cnt+=1

if tmp>n:

    print('No Solution!')

else:

    print('%d' %cnt)

 

3.本章学习过程中遇到的问题

有时会分不清动态规划和贪心算法,以前经常做把dp当成贪心做的憨憨事情。结对编程一起合作回去后顺利完成了实践题目

posted on 2019-11-23 09:00  啊啊哇哇啊  阅读(150)  评论(0编辑  收藏  举报

导航