bzoj3900: 交换茸角

题解:

一道不错的状压dp

关键在于如何处理出初始状态

dp[i]=min(dp[j]+dp[i^j])

初始状态可以枚举子集

然后对他们进行排序,如果相邻的小于c,就说明这个方案可行,步数就是sum-1

为什么这么做是对的,所以 我们可以对于那些需要全部交换的,答案就是sum-1

而对那些有的不需要交换的 可以通过子集递推

posted @ 2018-03-30 19:27  尹吴潇  阅读(117)  评论(0编辑  收藏  举报