BZOJ4145: [AMPPZ2014]The Prices
状压Dp
题解:
我们考虑设立状态
Dp[i][s]
表示考虑了前
i
个商店后,购买状态为
转移的话就枚举每个商店
i
,首先令:
这个过程表示到达这个商店。
然后枚举每个状态
s
,然后枚举每个不在
这个过程就相当于是进行了一次 01 背包。
最后还要令 Dp[i][s]=min(Dp[i][s],Dp[i−1][s]) ,看看在商店 i 时的购买计划是否划算。
令全集是
时间复杂度 O(nm2m) ,空间复杂度 O(n2m) 。