
状压dp
Mmm040403
这个作者很懒,什么都没留下…
展开
-
状压dp_宝藏
题目链接:https://www.luogu.org/problem/P3959很显然开通的一定是树。所以可以变相的认为赞助商搞的起点是树的根,每个结点到树的根的距离就是这个点的层数。有点像树形dp的状压dp吧。枚举根节点,然后枚举每一层的结点的集合,算出这一集合的最小代价,存到f[floor][s]中,表示已经选了的(注意啊不是这一层选了的)结点的集合为s,选到了floor层的最小代...原创 2019-08-29 18:02:10 · 227 阅读 · 1 评论 -
愤怒的小鸟-状压dp
题目链接: https://www.luogu.org/problem/P2831搜索待写对于状压dp,f[s]表示只要一维表示杀死的猪猪的集合为s的情况下需要的最小代价。对于每一个猪猪,他所被杀死的那个抛物线即可以是只杀死了他自己(比如所有猪猪的横坐标都相同那就只能都用了杀死一头猪的抛物线完成任务),也可以是同时杀死了2个猪猪,而在这同时可能还会杀死别的猪猪,所以我们用一个集合存一下杀死...原创 2019-08-28 15:59:04 · 214 阅读 · 0 评论 -
状压dp总结-吃奶酪+玉米田+宝藏
吃奶酪这题因为是个普及-的题目,所以我们可以直接用dfs搞一下。不过这题还可以用状压dp(二进制枚举),其实和dfs的本质是一样的啦f[x][s]表示以x为起点,现在的状态是s的最短路径。转移方程:f[i][s]=min(f[i][s],double(f[j][s-(1<<(i-1))]+dis(x[i],y[i],x[j],y[j])));注意这里的二进制...原创 2019-08-28 15:36:55 · 276 阅读 · 0 评论