dfs剪枝技巧 这篇文章灵感来源于今天leetcode的每日一题 先看题 如果学过算法的同学应该知道,这道题是NP问题,是不存在多项式时间的解法的 最朴素的想法就是直接暴力搜索,对于每个任务来说,为他分配工人,那么复杂度就是m^n 这道题正确的做法是状压dp,以工人划分阶段,dp[i][j]表示i个工人,状态为j的最小值 转移就是dp[i][j] = min(dp[i - 1][k] + sum[j - k]) 其中k是j的子集,sum[j - k]就是这个差集的任务的总时间 但是还有一种做法是二分+dfs,因为对…