我觉得非常有思维含量的一题
没看懂题解,大佬讲的还是没有看懂
对于一个集合S,不妨设要将这个集合设为蓝色,考虑一个包含元素最多的一个为蓝色的子集T,那么在包含有 S-T集合中的元素 的集合必定为红色,因为如果有一个为蓝色,那么这个与前面那个极大蓝色集合交一下就会有一个更大的蓝色集合,与假设矛盾。所以就可以转移。具体的转移就是枚举出集合T,然后算出包含有 S-T集合中的元素 的集合为红色的总代价。
考虑优化,考虑如果这个集合为红色,那么对于这个集合的所有蓝色子集,蓝色子集的并必定为比s小的s的子集,所以存在一个元素x,其不存在于任何一个蓝色集合中,那么包含这个元素的集合都是红色的。考虑枚举这个x,然后方程就是这个了。如果我们抱枕了上述的性质,那么s必然就是红色。然后直接转移就好了
\[dp[s][0]=min(dp[s][0],min(dp[s][0],dp[t][1])+a[s]-a[t]); \]\[dp[s][1]=min(dp[s][1],min(dp[s][0],dp[t][1])+b[s]-b[t]); \] 标签:元素,21,蓝色,省选,min,T1,子集,集合,dp From: https://www.cnblogs.com/wuhupai/p/18144383