AC思路
查看原帖
AC思路
1143073
Lwy255楼主2024/4/1 13:46

n<=30,直接暴力搜索。注意这几点优化方法:

  1. 优化搜索顺序,对瓜进行排序,优先搜索瓜重量大的。优先搜索分支数少的分支,时间会更少。
  2. dfs参数是之前的瓜重量和,切瓜次数,和当前搜索到了第几个瓜。每次有3种情况,买整个瓜,买一半,不买。可以数值翻倍,用整数去做,防止浮点数精度问题。当刚好m时,更新全局变量切瓜最小值。
  3. 可行性剪枝。如果重量和大于m,直接返回。维护前缀和。如果已经选择的重量和后面没有搜索的重量加起来比m还要小,也剪枝。如果没有这个操作,会有些超时。
  4. 最优性剪枝。如果切瓜次数大于等于之前记录的最小值,剪枝。 前缀和,十几行的dfs函数就可以AC
2024/4/1 13:46
加载中...