https://www.cometoj.com/contest/34/problem/D?problem_id=1476
思路:
为了预防超时(虽然感觉直接写dfs并不会超时),可以有以下两个剪枝:
1.若已知当前情况肯定不会比之前得到的最优答案更优,剪枝
2.可行性剪枝 0≤x,y,z≤180
两个点需要注意:
1.若第1题ab一起做60min,第二题bc一起做60min,第三题ac一起做60min,那么再来一道ac一起需要做60min的题则不能将这道题完成。
2.背景同上,若ab一起做60min,bc一起做60min,ac一起做60min,那么他们花费的总时间是180min而不是120min。
考虑到上述情况,所以不能按常规思维dfs
正确做法:维护8种做法(包含不做题的做法)每一种做法花费的时间。
代码:
more:
HDU6223