算法第5章作业

1.回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。用回溯算法解决问题的一般步骤为:

      1、定义一个解空间,它包含问题的解。 

      2、利用适于搜索的方法组织解空间。

      3、利用深度优先法搜索解空间。

      4、利用限界函数避免移动到不可能产生解的子空间。

2.一棵二叉树,向左走是选择,向右走是不要。

约束函数: if(K + a[t]<=c) 表示,若K(当前的和)+a【t】(目前的数)加起来不大于c(要求的和) 就进行下去。

     if(K + d > c) K+d(剩下的数) 加起来要大于c,就可以不选当前那个。

 

3. 一开始没有完全把约束函数写对,所以导致最后一个样例超时,后来跟队友讨论之后,之后再去写,就成功了。

 跟队友合作,让做起编程题来较自己一个来做,思路更清晰,得到的东西也更多

你可能感兴趣的:(算法第5章作业)